在Firefox中通过JavaScript复制到剪贴板(Copy to Clipboard)

英文标题:JavaScript Copy to Clipboard in Firefox

JavaScript代码如下:

function copy_to_clipboard(text) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert('您的Firefox安全设置限制了您进行剪贴板操作,请打开"about:config"将"signed.applets.codebase_principal_support"设置为"true"之后重试。');
return false;
}
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip)
return;
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans)
return;
trans.addDataFlavor('text/unicode');
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
str.data = text;
trans.setTransferData("text/unicode", str, text.length * 2);
var clipid = Components.interfaces.nsIClipboard;
if (!clip)
return false;
clip.setData(trans, null, clipid.kGlobalClipboard);
}

代码来自:跨浏览器“复制到粘贴板”JavaScript代码
说明:Firefox的默认安全限制不允许通过JavaScript复制到剪贴板,需要提示用户修改Firefox的设置。修改方法是打开"about:config"将"signed.applets.codebase_principal_support"设置为"true"。

标签: JavaScript
posted @ 2011-12-09 10:23 dudu 阅读(530) 评论(3) 编辑 收藏

 回复 引用 查看   
#1楼 2011-12-09 11:39 Ray Wu      
不用这么麻烦,使用flash可以跨平台,zeroclipboard就可以的。
 回复 引用 查看   
#2楼[楼主] 2011-12-09 17:17 dudu      
@Ray Wu
嗯,如果想跨所有浏览器复制到剪贴板,目前唯有flash。

 回复 引用 查看   
#3楼 2011-12-26 13:51 hautbbs      
收藏备用。