常规copy方法因为**document.execCommand()**在IOS系统不执行,一直为false,无法复制。
解决方案 使用clipboardjs实现
使用流程
安装插件(建议使用 yarn 安装)
npm install clipboard --save
引入插件
import ClipboardJS from "clipboard";
使用
注意:要在mounted阶段 去实例化ClipboardJS 后将会对你传入的DOM(参数1)进行单击监听 点击后即可触发copy;data-clipboard-text为复制到文本内容;
在触发的DOM节点上 如果额外添加单击事件不确定是否和该方法冲突 不过可以在其success回调中做对应的事件处理也可以的。
使用方法不止如下一种 还可以通过传参等其他方式配置 若想使用其他更适合你的方案可参阅文档。
//HTML 部分
<img src="copy.png" id="my_copyBtn" data-clipboard-text="这里是要copy的内容" />
// JS部分
onMounted(() => {
new ClipboardJS( '#my_copyBtn' ).on('success', function(e) {
e.clearSelection();
console.log('复制成功')
})
})