首页 > 代码库 > js实现复制到粘贴板,兼容各浏览器

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         //判断Ie16         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实现复制到粘贴板,兼容各浏览器