js 复制内容到剪切板

    xiaoxiao2021-12-14  24

    最近客户提出来要将当前页面的url 复制到剪切板,然后直接打开其他浏览器标签粘贴播放的需求,但是上网找了很多例子都不好使(浏览器兼容),网上的的现有方案大致有两种:

    一:使用原生JavaScript中window.clipboardData实现复制到剪贴板功能,但是仅仅支持ie浏览器,在firefox,chrome浏览器上则不起作用

    二:使用Zero Clipboard库,它是基于 Flash 来实现跨浏览器的复制功能的,但是在现代浏览器中,flash逐渐没落,firefox浏览器默认不开启flash,所以Zero Clipboard在兼容方面也表现不佳

    最后在一个牛人的博客上找到了这个可以兼容各大浏览器的好方法,测试之后找到一个比较通用、适用的方法,(但是有个问题,就是复制的内容元素不能设置隐藏样式,否则功能不好用,暂时也没找到解决办法)功能做完之后记录一下方便日后自己和其他人使用,直接上代码,还有demo 举例可自行下载:http://download.csdn.net/detail/csdn_cjgu/9699601

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>function-target</title> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <!-- 1. Define some markup --> <button class="btn">Copy</button> <div>hello</div> <!-- 2. Include library --> <script src="../dist/clipboard.min.js"></script> <!-- 3. Instantiate clipboard --> <script> var clipboard = new Clipboard('.btn', { target: function() { return document.querySelector('div'); } }); clipboard.on('success', function(e) { console.log(e); }); clipboard.on('error', function(e) { console.log(e); }); </script> </body> </html>

    非常简单实用,引入js (clipboard.min.js),将功能嵌入自己的页面即可

    也可以在复制成功和复制失败方法中加入提示,例如:

    //我们定义两个成功和失败需要显示的div <div class='copyTipSuc'>☺ 复制成功</div> <div class='copyTipFail'>复制失败!</div> //定义提示的样式和位置 .copyTipSuc{ position: absolute; width: 78px; z-index: 100; background-color: #ffffff; border: 1px solid #ddacac; font-size: 12px; border-radius: 3px; padding: 3px; top: 44px; left: 680px; display:none; } //成功后弹出提示 clipboard.on('success', function(e) { $(".copyTipSuc").fadeIn("slow"); setTimeout(function(){ $(".copyTipSuc").fadeOut("slow"); },1000); });

    done! ☺☺☺☺☺

    转载请注明原文地址: https://ju.6miu.com/read-962624.html

    最新回复(0)