itunes 最新版-windows 7系统下载

复制到剪贴板
2023年3月31日发(作者:sgreen)

JS复制内容到剪贴板:兼容IE、Firefox、Chrome、Safari所有浏览器

正文:

现在浏览器种类也越来越多,诸如IE、Firefox、Chrome、Safari等等,因此现在要实现一个js复制内容到剪贴板的小功能就不是一件那么容易

的事了。

在FLASH9时代,有一个通杀所有浏览器的js复制内容到剪贴板的方案:

这个方案是一个最流行的方法:著名的ClipboardCopy解决方案利用一个作为桥梁,复制内容到剪贴板。

原理是:创建一个隐藏的flash文件,同时给给flash的变量FlashVars赋值“clipboard=..”,通过这个赋值flash就会把复制的内容放到剪贴板。这

个方法兼容IE、Firefox、Opera、chrome、Safari,真可谓“万能”的解决方案。浏览器Flash的安装率非常高,这几乎是一个完美的解决方案。

JS部分:

varclipboardswfdata;

varsetcopy_gettext=function(){

clipboardswfdata=mentById('test_text').value;

//alert(clipboardswfdata);

iable('str',clipboardswfdata);

}

varfloatwin=function(){

alert('复制成功!');

//mentById('clipinner').y='none';

}

HTML部分:

文本內容

複製代碼到剪貼簿

menu="false"allowscriptaccess="sameDomain"swliveconnect="true"wmode="transparent"type="application/x-shockwave-flash"height="20"

width="100">

的下载地址:_

但是Flash10时代,上面的方法已经不行了。

因为flash10中规定了只有在swf上进行了真实的操作(比如鼠标点击)才能访问剪切板,而上述方法只是使用了一个隐藏的swf文件,通过

javascript操作flash的剪贴板,用户并没有对swf文件进行真实的操作,因此这个方法也就失效了。

那么如何解决这个“真实操作”的问题呢?可以使用一个JavaScript库:ZeroClipboard,利用这个js库可以支持利用flash10实现复制到剪贴板。

这个方法原理是在一个透明的flash(对用户来说是不可见的)上覆盖一个dom元素比如button或div,当点击这个dom时,实际点击的是flash,

从而访问flash的剪贴板。

飘易拿来我调试好的小例子:

ZeroClipboardTest

varclip=null;

function$(id){mentById(id);}

functioninit(){

clip=();

dCursor(true);

ntListener('mouseOver',function(client){

//updatethetextonmouseover

t($('fe_text').value);

});

ntListener('complete',function(client,text){

//debugstr("Copiedtexttoclipboard:"+text);

alert("该地址已经复制,你可以使用Ctrl+V粘贴。");

});

('clip_button','clip_container');

}

复制

飘易提供的例子下载:

调试时请上传到网站,本地直接打开flash会出错的,没权限。文件里moviePath属性是falsh的地址,就是目录下的那个

存放的地址位置。

这种js复制内容到剪贴板的方案可支持浏览器:Firefox/IE/opera/chorme/safari所有浏览器!