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>作者最新文章
ES6模块化中js文件怎么用import和export交互
2026-11-05 17:00:48
JS读取本地文件时报错或无响应的常见原因
2026-11-05 16:32:31
let、const与var的区别:JavaScript变量声明最佳实践
2026-11-05 14:16:38
JS中直接定义静态二维数组的字面量写法
2026-11-05 14:16:08
JS 怎么查找字符串中所有匹配项的位置
2026-11-05 14:15:53
