javascript复制功能的实现

        

  1. /** 
  2.     

  3.  * 复制代码,支持IE/Firefox/NS 
  4.     

  5.  */  
  6.     

  7. function copyToClipboard(txt) {  
  8.     

  9.     if (window.clipboardData) {  
  10.     

  11.         window.clipboardData.clearData();  
  12.     

  13.         window.clipboardData.setData("Text", txt);  
  14.     

  15.     } else if (navigator.userAgent.indexOf("Opera") != -1) {  
  16.     

  17.         window.location = txt;  
  18.     

  19.     } else if (window.netscape) {  
  20.     

  21.         try {  
  22.     

  23.             netscape.security.PrivilegeManager  
  24.     

  25.                     .enablePrivilege("UniversalXPConnect");  
  26.     

  27.         } catch (e) {  
  28.     

  29.             alert("你使用的FireFox浏览器,复制功能被浏览器拒绝!\n请在浏览器地址栏输入“about:config”并回车。\n然后将“signed.applets.codebase_principal_support”双击,设置为“true”");  
  30.     

  31.             return;  
  32.     

  33.         }  
  34.     

  35.         var clip = Components.classes[‘@mozilla.org/widget/clipboard;1’]  
  36.     

  37.                 .createInstance(Components.interfaces.nsIClipboard);  
  38.     

  39.         if (!clip)  
  40.     

  41.             return;  
  42.     

  43.         var trans = Components.classes[‘@mozilla.org/widget/transferable;1’]  
  44.     

  45.                 .createInstance(Components.interfaces.nsITransferable);  
  46.     

  47.         if (!trans)  
  48.     

  49.             return;  
  50.     

  51.         trans.addDataFlavor(‘text/unicode’);  
  52.     

  53.         var str = new Object();  
  54.     

  55.         var len = new Object();  
  56.     

  57.         var str = Components.classes["@mozilla.org/supports-string;1"]  
  58.     

  59.                 .createInstance(Components.interfaces.nsISupportsString);  
  60.     

  61.         var copytext = txt;  
  62.     

  63.         str.data = copytext;  
  64.     

  65.         trans.setTransferData("text/unicode", str, copytext.length * 2);  
  66.     

  67.         var clipid = Components.interfaces.nsIClipboard;  
  68.     

  69.         if (!clip)  
  70.     

  71.             return false;  
  72.     

  73.         clip.setData(trans, null, clipid.kGlobalClipboard);  
  74.     

  75.     }  
  76.     


  77.     

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据