一键复制页面上所有的数据到剪贴板

背景:完成一键复制功能、解决跨浏览器限制

正文:说这个功能的时候一定要先说说IE浏览器自带的属性window.clipboardData 这么恶心的属性只能支持IE浏览器,而当前仅仅满足ie浏览器是不能满足用户需求的,鬼知道他们为什么不适应我们的技术啊,当然像我们这些聪明的开发者当然会有其他的办法。说说其他办法之前先把ie这个属性说完。

仅支持IE浏览器: window.clipboardData.setData(data);  data就是你的数据按照你的规则拼接即可

适合多个浏览器的就是强大的 js flash ZeroClipboard插件。直接贴代码

$(document).ready(function () { 页面执行就加载
				var clip = new ZeroClipboard.Client()//创建ZeroClipBoard对象; 
				ZeroClipboard.setMoviePath( "/ui/uiPub/js/ZeroClipboard.swf" );//flash动画文件
				clip.setHandCursor( true );设置鼠标移动过来的形状
				clip.setText(""); //设置文本内容我这里是清空剪切板
				clip.addEventListener( "mouseUp", function(client) { //监听鼠标事件
					 var data1 = ""; 
					 var tab = document.getElementById("copy");
					 var count=  tab.rows.length;
					 for (var i=1; i < count;i++) {
					 var num = tab.rows[i].cells[0].innerHTML;
					 var pwd = tab.rows[i].cells[1].innerHTML;
					 data1 =data1 + num +" "; 
					 data1 =data1 + pwd +"\r\n"; 
					 }
					 clip.setText(data1);
					 modalMsg("复制成功",1);
				});
				clip.glue("copyd"); // 和上一句位置不可调换
			}); 
这里鼠标监听的事件有很多种可以满足大家的需求,我这个代码亲测实用。直接就可以用,用的时候我当然要说一下原理是吧
就是将要复制的内容设置为flash插件的数据,再通过flash的接口复制到剪贴板中。这样做最大的好处就是照顾到页面本身的兼容性,HTML5中虽然提供了读取剪贴板的方法但写入内容还不支持(至少我是没成功过)。但是这样做有个安全问题,flash插件可以随时访问你的剪贴板内容,如果你刚好复制了你的敏感信息(比如密码),又访问了这个网页,那么它就可以轻易地获取你的数据并传到他自己的服务器上,所以之后的版本中特意加入了一定要用户点击相应的swf文件才可以获取信息的限制,所以就要求引入的swf插件要覆盖用户点击的部分,带来的问题就是会影响hover伪类、样式和相应事件的触发,当然,在插件中会对此进行对应的弥补设置的。
需要js、swf的就自行下载  如果你们是在懒  那就加我qq吧929046859  暗号  Mr_KingPeng

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值