js实现复制到粘贴板,兼容各浏览器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js实现复制到粘贴板,兼容各浏览器相关的知识,希望对你有一定的参考价值。

网上搜js实现复制粘贴的文章一大堆,但是没几个能用的。有的文章说Clipboard Copy解决,利用一个clipboard.swf作为桥梁,复制内容到剪贴板。

听说的是兼容IE、Firefox、Opera、chrome、 Safari,但是必须浏览器支持Flash,考虑到Flash支持不是100%,所以我摒弃了这个方案。

 

说说我的实现,灵感来自优酷分享的复制,在此之上加以修改的。经测试,支持IE、Firefox、Opera、chrome、搜狗浏览器、360等主流浏览器,Safari是本身不支持js复制的,搜狗5.几也不支持。使用前引入jquery,如有不支持的浏览器版本,望告知。

 1 /**
 2  * 复制文本
 3  * @param id 复制节点Id   该节点不能隐藏
 4  */
 5 function copyText(id){
 6     //获取节点
 7     var n = $("#" + id);
 8     if(n == null){
 9         //节点为空直接返回
10         return;
11     }
12     try {
13         //取得浏览器的userAgent字符串
14         var userAgent = navigator.userAgent;
15         //判断Ie
16         if (userAgent.indexOf("MSIE") > 0){
17             window.clipboardData.setData(‘text‘, n.val());
18             var copyContent = window.clipboardData.getData("text");
19             //判断复制成功,ie复制可选择是否允许
20             if(copyContent == n.val()){
21                 alert("复制成功。现在您可以粘贴(Ctrl+v)到Blog 或BBS中了。");
22                 return;
23             }
24         }else{
25             n.select();
26             therange = void 0;
27             if (n.createTextRange) therange = n.createTextRange();
28             therange = therange ? therange : document;
29             if (therange.execCommand("Copy")) {
30                 alert("复制成功。现在您可以粘贴(Ctrl+v)到Blog 或BBS中了。");
31                 return;
32             }
33         }
34     } catch (i) {
35     }
36     alert("您使用的浏览器不支持此复制功能,请使用Ctrl+C或鼠标右键。");
37 }

 

以上是关于js实现复制到粘贴板,兼容各浏览器的主要内容,如果未能解决你的问题,请参考以下文章

用js实现图片复制到剪切板的功能,兼容各种浏览器,例如IE,火狐、chome等。

浏览器点击复制粘贴到剪切板的解决

在js里怎么复制一个变量到粘贴板

js实现复制内容到剪切板,兼容pc和手机端,支持Safari浏览器

js实现网页内自定义粘贴板

js 实现复制到粘贴板功能