JavaScript实现兼容IE与火狐的剪切板复制功能

作者:青柠时间:2026-10-27 17:48:54浏览:253

本文提供一段JavaScript代码,实现将指定文本复制到系统剪切板的功能。该方案通过判断浏览器类型分别处理:IE使用window.clipboardData接口,Firefox则需启用UniversalXPConnect权限并通过nsIClipboard组件操作。代码包含完整的错误处理与调用示例,适用于需要兼容老旧浏览器的场景。

JavaScript兼容IE与Firefox的剪切板复制实现

具体实现代码如下所示:

<mce:script type="text/javascript"><!--
function copyToClipboard(meintext)
{
//针对IE浏览器的处理逻辑
if (window.clipboardData){
window.clipboardData.setData("Text", meintext);
    }
}else if (window.netscape)
    {
try
        {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        }
catch(e)
        {
alert("被浏览器拒绝!"); ///n请在浏览器地址栏输入'about:config'并回车/n然后将 'signed.applets.codebase_principal_support'设置为'true'
        }
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=meintext;
str.data=copytext;
trans.setTransferData("text/unicode",str,copytext.length*2);
var clipid=Components.interfaces.nsIClipboard;
if (!clip) return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
    }
alert("已复制本页链接,您可以使用Ctrl+V粘贴后,发送给好友!");
return false;
}
// --></mce:script>
调用方式:执行copyToClipboard(meintext)函数,其中meintext为待复制的字符串参数。HTML示例如下:<input id='a' name='a' type='text'value='good' /><input name="" type="button" value='复制' onClick="copyToClipboard(a.value)"><a href="ums://aHR0cDovLzMyLmRjLmZ0bi5xcS5jb20vZnRuX2hhbmRsZXIvY2E1NGY4YzE3NTI5MzNiNzQ2NjU5ZmVmZjliNTUwZTM0NWNkMTVhNDg1Nzc4ODg5N2MxMWUyMjcwZDE3YjcxMGMwZGUxMmJlMGEyZTVhM2E1MTExMmE1Y2FlOTNmYjkwMGIxNmFkZWVjOGZiYmMxNThlNzg1YTRmNWRjMDdmZGIvQkJDJUU4JTkzJTlEJUU4JTg5JUIyJUU2JTk4JTlGJUU3JTkwJTgzMDgucmFyJjhjZDA3ZTUz" mce_href="ums://aHR0cDovLzMyLmRjLmZ0bi5xcS5jb20vZnRuX2hhbmRsZXIvY2E1NGY4YzE3NTI5MzNiNzQ2NjU5ZmVmZjliNTUwZTM0NWNkMTVhNDg1Nzc4ODg5N2MxMWUyMjcwZDE3YjcxMGMwZGUxMmJlMGEyZTVhM2E1MTExMmE1Y2FlOTNmYjkwMGIxNmFkZWVjOGZiYmMxNThlNzg1YTRmNWRjMDdmZGIvQkJDJUU4JTkzJTlEJUU4JTg5JUIyJUU2JTk4JTlGJUU3JTkwJTgzMDgucmFyJjhjZDA3ZTUz" onClick="copyToClipboard(this.href)">01集</a>
作者最新文章