主页 > 软件教程

js复制到剪贴板代码(兼容ie和火狐)

软件教程 2024-01-09

在web开发过程中常常要实现复制功能,比如复制源码、复制推广链接等,为了提高程序效率,一般都用js实现,具体源码如下:

<script language="javascript" type="text/javascript">
function CopyValue(obj){
var val = document.getElementById(obj).value;
if(CopyValue2Clipboard(val)!=false){
alert('已经复制!');
}
}
CopyValue2Clipboard = function(val){
if(window.clipboardData){
window.clipboardData.clearData();
window.clipboardData.setData("Text",val);
}
else if(navigator.userAgent.indexOf("Opera")! = -1){
window.location = val;
}
else if(window.netscape){
try{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch(e){
alert("此操作被浏览器拒绝!请在浏览器地址栏输入“about:config”并回车,然后双击将[signed.applets.codebase_principal_support]的值设置为'true'即可。");
return false;
}
var cb = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if(!cb)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 copyValue = val;
str.data = copyValue;
trans.setTransferData("text/unicode",str,copyValue.length*2);
var cbId = Components.interfaces.nsIClipboard;
if(!cb)return false;
cb.setData(trans,null,cbId.kGlobalClipboard);
}
}
</Script>


这句 var val = document.getElementById(obj).value; 是取待复制对象的值,也可以是 var val = document.getElementById(obj).innerText; ,不过ie6不支持,所以为了照顾ie6,只能用input标签,暂不用span、div等标签。


标签: js复制到剪贴板代码

电脑软硬件教程网 Copyright © 2016-2030 www.computer26.com. Some Rights Reserved.