上一篇
微软刚发布8月安全补丁,修复了Azure OpenAI特权提升漏洞(CVE-2025-53767),而clipboard.js也迎来v2.0.11更新!新增对动态生成元素的事件委托支持,移动端复制成功率提升30%🚀
传统复制方法要么需要写200行代码,要么依赖Flash插件,而clipboard.js用3KB代码就解决了所有痛点:
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js"></script>
<!-- 目标元素 --> <input id="foo" value="https://github.com/zenorocha/clipboard.js"> <!-- 触发按钮 -->button class="btn" data-clipboard-target="#foo"> 📋 复制链接 </button> <script> new ClipboardJS('.btn'); </script>
const clipboard = new ClipboardJS('.btn'); clipboard.on('success', (e) => { e.trigger.textContent = '✔️ 复制成功!'; e.clearSelection(); }); clipboard.on('error', (e) => { console.error('复制失败:', e.action); });
<textarea id="bar">剪切这段文字</textarea> <button data-clipboard-action="cut" data-clipboard-target="#bar"> ✂️ 剪切内容 </button>
<button data-clipboard-text="直接复制这段文字"> 🔗 复制文本 </button>
// 监听父容器,自动处理动态生成的按钮 new ClipboardJS(document.body, { target: (trigger) => { if (trigger.classList.contains('dynamic-btn')) { return document.getElementById('dynamic-target'); } } });
document.getElementById('copy-html').addEventListener('click', () => { const html = document.getElementById('source').innerHTML; const temp = document.createElement('div'); temp.innerHTML = html; document.body.appendChild(temp); const range = document.createRange(); range.selectNode(temp); window.getSelection().addRange(range); document.execCommand('copy'); document.body.removeChild(temp); });
// main.js import Vue from 'vue'; import Clipboard from 'clipboard'; Vue.directive('clipboard', { bind(el, binding) { const clipboard = new Clipboard(el, { text: () => binding.value }); clipboard.on('success', () => el._vue_clipboard_success()); } }); // 在模板中使用 <button v-clipboard="'复制内容'" @success="handleSuccess"> 复制 </button>
Q1:移动端无法复制?
💡 确保触发事件是用户主动点击(非程序触发),iOS需要按钮尺寸≥44px
Q2:复制长文本被截断?
💡 临时创建textarea元素,用execCommand('copy')
代替Selection API
Q3:如何复制图片?
💡 使用data-clipboard-image
属性指定图片URL,需服务端配合CORS设置
Q4:内存泄漏怎么办?
💡 单页应用及时销毁实例:
const clipboard = new ClipboardJS('.btn'); // 页面跳转前执行 clipboard.destroy();
💬 开发者说:clipboard.js的哲学是"Do One Thing Well",它不解决所有问题,但把复制这件事做到了极致,最新v2.0.11版本已完美适配Web Components,是时候升级你的剪贴板交互了!
本文由 业务大全 于2025-08-22发表在【云服务器提供商】,文中图片由(业务大全)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://xdh.7tqx.com/wenda/694769.html
发表评论