js 跨 firefox ie 的复制,粘贴功能做法
问题内容:Firefox实现IE下的复制粘贴功能原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=5115440所属论坛:JavaScript 审核组:WEB开发提问者:wab81923
- 问题内容: Firefox实现IE下的复制粘贴功能
- 原讨论链接: http://community.csdn.net/expert/topicview1.asp?id=5115440
- 所属论坛: JavaScript 审核组: WEB开发
- 提问者: wab81923 解决者: brothercat
- 感谢:
- 关键字: JavaScript Web 开发 网址 input value type return txt var clip components.classes
- 答案:
function cpylink(btn,obj)
{
therange=obj.createTextRange();
therange.execCommand("copy");
btn.value = " 复制完毕 ";
}
<input type="hidden" id="myurl" name="myurl" size="10" value='www.zyqRadio.com'>
<input type="button" value=" 复制本站网 址 " name="B3" οnclick="javascript:cpylink(this,document.getElementById('myurl'))" >
---------------------------------------------------------------
FF里这个问题比较麻烦,因为大部分情况FF里处于安全考虑都会禁用复制功能,所以首先你要在FF浏览器的地址栏里输 入:about:config 设置"signed.applets.codebase_principal_support"选项的值为true,然 后照下面代码来写:
===============================================================================
<html>
<head>
<title>兼容的复制功能</title>
<script>
function copylink(btn,inputtxt)
{
var therange=inputtxt.value;
copyToClipboard(therange);
btn.value = " 复制完毕 ";
}
function copyToClipboard(txt) {
if(window.clipboardData)
{
window.clipboardData.clearData();
window.clipboardData.setData("Text", txt);
}
else if(navigator.userAgent.indexOf("Opera") != -1)
{
window.location = txt;
}
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 = txt;
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);
}
return true;
}
</script>
</head>
<body>
<input type="hidden" id="hiddenurl" size="10" value="www.csdn.net">
<input type="button" value=" 复制本站网 址 " name="B3" οnclick="javascript:copylink(this,document.getElementById('hiddenurl'))" >
</body>
</html>
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)