复制到剪切板 - 兼容 ie, firefox, chrome & flash10

从 discuz! 里扒出来的(简易实现), 代码如下:

var clipboardswfdata;
var setcopy_gettext = function(){
    clipboardswfdata = document.getElementById('data').value;
    window.document.clipboardswf.SetVariable('str', clipboardswfdata);
}
var floatwin = function(){
    alert('copy success, ' + clipboardswfdata);
}
<input type="text" name="data" value="xxxxx11111" id ="data" />
<div id="clipboard_content">
<span class="clipinner" id="clipinner">点此复制到剪贴板
<embed name="clipboardswf" class="clipboardswf" id="clipboardswf" onmouseover="setcopy_gettext()" devicefont="false" src="./clipboard.swf" menu="false" allowscriptaccess="sameDomain" swliveconnect="true" wmode="transparent" type="application/x-shockwave-flash" height="20" width="100"></span>
</div>
body {font-size:12px;}
.clipinner {position:relative;}
.clipboardswf {position:absolute; left:0; top:0;}

实现稍微有些恶心, 用 onmouseover 事件往 flash 中传递数据

另: 没有对ie单独处理, ie中推荐使用 window.clipboardData

演示地址: demo.html

演示代码下载: clipboard.zip

另: google code 上有个 zeroclipboard 的项目, 如果想要方便的话, 也可以使用

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

2010-04-13 117 clipboard flash javascript XHTML