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等。