JS复制到剪切板(兼容主流所有浏览器)

1、主要用到github上的一个开源的项目:clipboard.js
2、clipboard.js 可以实现纯JS复制数据到剪切板中(无需flash支持)跟现在主流的zeroclipboard 比起来方便了不止一点两点(毕竟不是所有人都会装flash插件的)
下面写一些DEMO来记录一下学习:

首先引入依赖JS包:

<script src="../clipboard.min.js"></script>

然后实例化clipboard(clipboard实例化需要指定一个元素,也就是点击指定元素会触发复制方法)

var clipboard = new Clipboard('.btn');

下面是完整DEMO:

<script src="clipboard.min.js"></script>
 <textarea id="bar" cols="10" rows="1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">clipboard.jsd的DEMO演示</textarea>

<!-- Trigger -->
<button class="btn" data-clipboard-action="copy" data-clipboard-target="#bar">
  Cut to clipboard
</button>
<script>
var clipboard = new Clipboard('.btn');
clipboard.on('success', function(e) {
    console.info('Action:', e.action);
    console.info('Text:', e.text);
    console.info('Trigger:', e.trigger);  
    alert("复制成功");
    e.clearSelection();
});

clipboard.on('error', function(e) {
    console.error('Action:', e.action);
    console.error('Trigger:', e.trigger);
});
</script>

这样就可以简单的完成对主流浏览器进行JS复制的操作了,
本例子只是做出了一个基础的操作,
如果想深入了解请到clipboard.js官方网站了解详情,
JS下载地址:http://download.csdn.net/detail/qq_22445455/9619105
官方地址:https://clipboardjs.com/

在Vue.js中,复制图片到剪贴板通常通过`clipboard.js`库来实现,这是一个轻量级的JavaScript库,用于在现代浏览器上提供跨平台的剪贴板功能。对于Edge浏览器的支持,`clipboard.js`已经做得很好。 首先,你需要安装`clipboard.js`: ```bash npm install clipboardjs # 或者 yarn add clipboardjs ``` 然后,在你的Vue组件中引入并使用它: ```html <!-- 引入script标签 --> <script src="path/to/clipboard.min.js"></script> <!-- 使用ref绑定到img元素 --> <template> <div> <img ref="imageToCopy" :src="yourImageSrc" /> <button @click="copyImage">复制图片</button> </div> </template> <script> import ClipboardJS from 'clipboard'; export default { data() { return { yourImageSrc: 'your-image-url', // 图片URL }; }, mounted() { this.clipboard = new ClipboardJS('.copy-button'); // 将按钮绑定到ClipboardJS实例 }, methods: { copyImage() { if (this.$refs.imageToCopy) { // 确保图片元素存在 const imageDataUrl = this.$refs.imageToCopy.src; // 获取图片数据URL this.clipboard.writeText(imageDataUrl); // 调用复制操作 } }, }, }; </script> ``` 这里假设你有一个`.copy-button`的CSS选择器指向你的复制按钮。如果你需要处理Edge浏览器特有的兼容性问题,可以在`mounted`生命周期钩子里添加条件判断检查是否支持`writeText`方法: ```javascript methods: { copyImage() { if (typeof this.clipboard === 'undefined' || !this.clipboard.writeText) { // Edge浏览器可能不支持,可以考虑使用其他方法如toDataURL const canvas = document.createElement('canvas'); canvas.width = this.$refs.imageToCopy.naturalWidth; canvas.height = this.$refs.imageToCopy.naturalHeight; canvas.getContext('2d').drawImage(this.$refs.imageToCopy, 0, 0); const imageDataUrl = canvas.toDataURL('image/png'); navigator.clipboard.writeText(imageDataUrl); // 写入剪贴板 } else { this.clipboard.writeText(this.$refs.imageToCopy.src); } }, }, ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值