javascript copy 复制

在IE下,可以使用clipboardData

 

<input type="button" name="anniu1" onClick='copyToClipBoard()' value="复制地址"> 
<script language="javascript"> 
   function copyToClipBoard(){ 
    var clipBoardContent=""; 
    clipBoardContent+=document.title; 
    clipBoardContent+=""; 
    clipBoardContent+=this.location.href; 
    window.clipboardData.setData("Text",clipBoardContent); 
    alert("复制成功!"); 
} 

 但是在FireFox却不行,http://davidwalsh.name/clipboard 提供了一种万能方案,傅用的是flash技术,我的代码如下

 

$(document).ready(function(){
		ZeroClipboard.setMoviePath('js/ZeroClipboard.swf');
		//create client
		var clip = new ZeroClipboard.Client();
		//event
		clip.addEventListener('mousedown',function() {
			clip.setText($('#inviteLink').val());
		});
		clip.addEventListener('complete',function(client,text) {
			alert("生成的代码已经复制到粘贴板,你可以使用Ctrl+V 贴到需要的地方去了哦!");
		});
		clip.glue('copy');
});

 copy为页面元素的id

这样就可以了,在IE6,IE9, FireFox8.0, Chrome15.0.874.106, 可以正常运行

注:Iteye就是用的这种方法^_^

 

【增加】:

    flash技术使用的是事件机制,就是点击事件,它把点击区域与页面元素的区域重复,点击复制元素时,就触发flash的复制事件,

 

var style = this.div.style;
style.position = 'absolute';
style.left = '' + box.left + 'px';
style.top = '' + box.top + 'px';
style.width = '' + box.width + 'px';
style.height = '' + box.height + 'px';

 昨天使用了js进行动态加载内容,发现复制失效了,找了半天,终于发现是这个问题,我的解决方案是,动态加载内容后,重新绑定,这样就可以了

    增加:页面变化后,一般是通过Ajax改变了页面的内容,这时可以通过clip.reposition()重新绑定,也可能通过 clip.show(),这个方法也会调用clip.reposition();

    相关的文章:https://code.google.com/p/zeroclipboard/wiki/Instructions

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值