拷贝文字到剪贴板firefox ie 通用js函数

来源:互联网 发布:美国网络小说 知乎 编辑:程序博客网 时间:2024/04/19 02:15
  1. function copyToClipboard(txt) {          
  2.   
  3.      if(window.clipboardData) {          
  4.   
  5.               window.clipboardData.clearData();          
  6.   
  7.               window.clipboardData.setData("Text", txt);          
  8.   
  9.       } else if(navigator.userAgent.indexOf("Opera") != -1) {          
  10.   
  11.            window.location = txt;          
  12.   
  13.       } else if (window.netscape) {          
  14.   
  15.           try {          
  16.   
  17.                 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");          
  18.   
  19.            } catch (e) {          
  20.   
  21.                 alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");          
  22.   
  23.            }          
  24.   
  25.           var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);          
  26.   
  27.           if (!clip)          
  28.   
  29.                return;          
  30.   
  31.           var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);          
  32.   
  33.           if (!trans)          
  34.   
  35.                return;          
  36.   
  37.            trans.addDataFlavor('text/unicode');          
  38.   
  39.           var str = new Object();          
  40.   
  41.           var len = new Object();          
  42.   
  43.           var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);          
  44.   
  45.           var copytext = txt;          
  46.   
  47.            str.data = copytext;          
  48.   
  49.            trans.setTransferData("text/unicode",str,copytext.length*2);          
  50.   
  51.           var clipid = Components.interfaces.nsIClipboard;          
  52.   
  53.           if (!clip)          
  54.   
  55.                return false;          
  56.   
  57.            clip.setData(trans,null,clipid.kGlobalClipboard);          
  58.   
  59.            alert("复制成功!")          
  60.   
  61.       }          
  62.   
  63. }       

原创粉丝点击