IE和firefox通用的复制到剪贴板的JS函数

来源:互联网 发布:学软件哪里好 编辑:程序博客网 时间:2024/05/02 00:56

 this is a javascript that i built out of several sources so that it is possible to copy text out of HTML in firefox/mozilla/netscape and in Internet Explorer

 

  1. function copyToClipboard(txt) {    
  2.      if(window.clipboardData) {    
  3.              window.clipboardData.clearData();    
  4.              window.clipboardData.setData("Text", txt);    
  5.      } else if(navigator.userAgent.indexOf("Opera") != -1) {    
  6.           window.location = txt;    
  7.      } else if (window.netscape) {    
  8.           try {    
  9.                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");    
  10.           } catch (e) {    
  11.                alert("被浏览器拒绝!/n请在浏览器地址栏输入'about:config'并回车/n然后将'signed.applets.codebase_principal_support'设置为'true'");    
  12.           }    
  13.           var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);    
  14.           if (!clip)    
  15.                return;    
  16.           var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);    
  17.           if (!trans)    
  18.                return;    
  19.           trans.addDataFlavor('text/unicode');    
  20.           var str = new Object();    
  21.           var len = new Object();    
  22.           var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);    
  23.           var copytext = txt;    
  24.           str.data = copytext;    
  25.           trans.setTransferData("text/unicode",str,copytext.length*2);    
  26.           var clipid = Components.interfaces.nsIClipboard;    
  27.           if (!clip)    
  28.                return false;    
  29.           clip.setData(trans,null,clipid.kGlobalClipboard);    
  30.           alert("复制成功!")    
  31.      }    
  32. }