• 复制文本框内容至剪贴板


    1 <body>
    2     <form id="form1" runat="server">
    3     <div>
    4         <textarea id="txtArea" cols="30" rows="3">我是一个文本,Hello World!</textarea><br />
    5         <input type="button" name="name" value="复制内容" onclick="copyToClipBoard('txtArea')" />
    6     </div>
    7     </form>
    8 </body>

    JS:

     1 <script type="text/javascript">
     2         //复制文本框
     3         function copyToClipBoard(id) {
     4             var code = $("#" + id).val();
     5             code = HTMLDeCode(code);
     6             var tip = copyCode(code);
     7             if (tip == 0) {//0 成功 1 失败 2 不支持 3 已经提示
     8                 var _open = tool.getCookieValue("open");
     9                 if (_open == "0" && _global.security == "1") {
    10                     alert("您当前的安全级别为高,此时“完全公开”代码将无效\n若要继续选择“完全公开”代码,请将安全级设置为“中”。");
    11                 } else {
    12                     tool.setCenter($("#box2"), 0);
    13                     $("#box2").fadeIn();
    14                 }
    15             } else if (tip == 1) {
    16                 alert("复制失败,请重试!");
    17             } else if (tip == 2) {
    18                 alert("您的浏览器不支持此功能");
    19             }
    20             if (typeof pgvSendClick == "function") {
    21                 if (tool.getCookieValue("open") == 1) {
    22                     pgvSendClick({ hottag: 'R1JT.wp.index.security' });
    23                 } else {
    24                     pgvSendClick({ hottag: 'R1JT.wp.index.open' });
    25                 }
    26             }
    27 
    28         }
    29         //去掉特殊符号
    30         function HTMLDeCode(str) {
    31             var s = "";
    32             if (str.length == 0) return "";
    33             s = str.replace(/&amp;/g, "&")
    34                     .replace(/&lt;/g, "<")
    35                     .replace(/&gt;/g, ">")
    36                     .replace(/&nbsp;/g, " ")
    37                     .replace(/&apos;/g, "'")
    38                     .replace(/&quot;/g, "\"");
    39             return s;
    40         }
    41         //执行复制
    42         function copyCode(txt) {//0 成功 1 失败 2 不支持 3 已经提示
    43             if (window.clipboardData) {//IE
    44                 window.clipboardData.clearData();
    45                 window.clipboardData.setData("Text", txt);
    46                 return 0;
    47             } else if (navigator.userAgent.indexOf("Opera") != -1) {//Opera                
    48                 return 2;
    49             } else if (window.netscape) {//火狐                
    50                 try {
    51                     netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
    52                 } catch (e) {
    53                     alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");
    54                     return 3;
    55                 }
    56                 var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
    57                 if (!clip)
    58                     return 1;
    59                 var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
    60                 if (!trans)
    61                     return 1;
    62                 trans.addDataFlavor('text/unicode');
    63                 var str = new Object();
    64                 var len = new Object();
    65                 var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
    66                 var copytext = txt;
    67                 str.data = copytext;
    68                 trans.setTransferData("text/unicode", str, copytext.length * 2);
    69                 var clipid = Components.interfaces.nsIClipboard;
    70                 if (!clip)
    71                     return 1;
    72                 clip.setData(trans, null, clipid.kGlobalClipboard);
    73                 return 0;
    74             } else {//chrome ,safra        
    75                 return 2;
    76             }
    77         } 
    78     </script>

    IE 能正常复制,火狐 通过设置可以复制

    谷歌,Opera 不支持,继续寻找好的解决办法!

  • 相关阅读:
    个人永久性免费-Excel催化剂功能第86波-人工智能之图像OCR文本识别全覆盖
    git删除远程仓库的文件或目录
    使用document.execCommand复制内容至剪贴板
    使用clipboard.js实现复制内容至剪贴板
    正则匹配目标字符串不等于某些特定的字符串
    substr与substring的用法
    使用hexo搭建个人博客
    git修改最后一次commit的内容
    gulp压缩文件最简示例
    gulp最简示例
  • 原文地址:https://www.cnblogs.com/zhaozhengyan/p/CopyText.html
Copyright © 2020-2023  润新知