【转】跨浏览器“复制到粘贴板”JavaScript代码

非原创,来源网络。感谢原作者奉献如此精彩文章。  http://www.cnblogs.com/JustinYoung/articles/1018752.html

<!doctype html public "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="Keywords" content="YES!B/S!"/>
<meta name="Description" content="This page is from http://Justinyoung.cnblogs.com"/>
<title>CSS/Javascript demo</title>
<script type="text/javascript" language="javascript">
function test(){
copyToClipboard(
"dddd");
}

copyToClipboard
=function(txt) {
if(window.clipboardData) {
window.clipboardData.clearData();
window.clipboardData.setData(
"Text", txt);
}
elseif(navigator.userAgent.indexOf("Opera") !=-1) {
window.location
= txt;
}
elseif (window.netscape) {
try{
netscape.security.PrivilegeManager.enablePrivilege(
"UniversalXPConnect");
}
catch (e) {
alert(
"您的firefox安全限制限制您进行剪贴板操作,请打开’about:config’将signed.applets.codebase_principal_support’设置为true’之后重试");
returnfalse;
}

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 =new Object();
var len =new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var copytext = txt;
str.data
= copytext;
trans.setTransferData(
"text/unicode",str,copytext.length*2);
var clipid = Components.interfaces.nsIClipboard;
if (!clip)
returnfalse;
clip.setData(trans,
null,clipid.kGlobalClipboard);
}

}

</script>
</head>
<body>
<button onclick="test();">复制到粘贴板</button>
</body>
</html>
原文地址:https://www.cnblogs.com/w3live/p/2468234.html