web开发中常常要实现复制到剪切板功能。这个功能很实用,但是由于安全问题,流览器的限制越来越严,实现的方法也越来越有限了。Firefox 默认下不能直接通过Javascript操作剪切板,必须开启相关的设置才行。想只通过Javascript技术实现跨流览器的剪切板是行不通的。现在常用的方法是利用JavaScript+Flash实现,普遍流传的办法是_clipboard.swf,这是国外最早实现的(著名的Clipboard Copy解决方案: http://www.jeffothy.com/weblog/clipboard-copy/)。但是很可惜,_clipboard.swf在新出来的flash10中无效,因为flash10中规定了只有在swf上进行了实际的操作(比如滑鼠点击)才能启动剪切板。而_clipboard.swf方法的swf是隐藏的,通过JavaScript来操作flash的剪切板,显然没有对swf进行实际的用户操作。

  本文将介绍一个跨流览器的库类 Zero Clipboard 。它利用 Flash 进行复制,所以只要流览器装有 Flash 就可以运行,而且比 IE document.execCommand("Copy") 更加灵活。

Zero Clipboard 的实现原理 
Zero Clipboard
利用 Flash 进行复制,之前有 Clipboard Copy 解决方案,其利用的是一个隐藏的 Flash。但最新的 Flash Player 10 只允许在 Flash 上进行操作才能启动剪贴板。所以 Zero Clipboard 对此进行了改进,用了一个透明的 Flash ,让其漂浮在按钮之上,这样其实点击的不是按钮而是 Flash ,也就可以使用 Flash 的复制功能了。

如何使用 Zero Clipboard 
首先下载 Zero Clipboard ,并解压缩。其中需要两个档:ZeroClipboard.js ZeroClipboard.swf ,将这两个档放入到你的专案中。

Zero Clipboard项目主页:

http://code.google.com/p/zeroclipboard/

演示位址: 
http://bowser.macminicolo.net/~jhuckaby/zeroclipboard/

相关文章