zoukankan      html  css  js  c++  java
  • js模拟复制

    现在浏览器种类也越来越多,诸如 IE、Firefox、Chrome、Safari等等,因此现在要实现一个js复制内容到剪贴板的小功能就不是一件那么容易的事了。
     

    一、实现点击按钮,复制文本框中的的内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
    function copyUrl2()
    {
    var Url2=document.getElementById("biao1");
    Url2.select(); // 选择对象
    document.execCommand("Copy"); // 执行浏览器复制命令
    alert("已复制好,可贴粘。");
    }
    </script>
    <textarea cols="20" rows="10" id="biao1">用户定义的代码区域</textarea>
    <input type="button" onClick="copyUrl2()" value="点击复制代码" />

    二、复制专题地址和 url 地址,传给 QQ/MSN 上的好友

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>Js复制代码</title>
    </head>
    <body>
    <p>
    <input type="button" name="anniu1" onClick='copyToClipBoard()' value="复制专题地址和url地址,传给QQ/MSN上的好友">
    <script language="javascript">
    function copyToClipBoard(){
    var clipBoardContent="";
    clipBoardContent+=document.title;
    clipBoardContent+="";
    clipBoardContent+=this.location.href;
    window.clipboardData.setData("Text",clipBoardContent);
    alert("复制成功,请粘贴到你的QQ/MSN上推荐给你的好友");
    }
    </script>

    三、直接复制 url

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <input type="button" name="anniu2" onClick='copyUrl()' value="复制URL地址">
    <script language="javascript">
    function copyUrl()
    {
    var clipBoardContent=this.location.href;
    window.clipboardData.setData("Text",clipBoardContent);
    alert("复制成功!");
    }
    </script>

    四、点击文本框时,复制文本框里面的内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <input onclick="oCopy(this)" value="你好.要copy的内容!">
    <script language="javascript">
    function oCopy(obj){
    obj.select();
    js=obj.createTextRange();
    js.execCommand("Copy")
    alert("复制成功!");
    }
    </script>

    五、复制文本框或者隐藏域中的内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <script language="javascript">
    function CopyUrl(target){
    target.value=myimg.value;
    target.select();
    js=myimg.createTextRange();
    js.execCommand("Copy");
    alert("复制成功!");
    }
    function AddImg(target){
    target.value="[IMG]"+myimg.value+"[/ img]";
    target.select();
    js=target.createTextRange();
    js.execCommand("Copy");
    alert("复制成功!");
    }
    </script>

    六、复制 span 标记中的内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <script type="text/javascript">
    </script>
    <br />
    <br />
    <script type="text/javascript">function copyText(obj)
    {
    var rng = document.body.createTextRange();
    rng.moveToElementText(obj);
    rng.scrollIntoView();
    rng.select();
    rng.execCommand("Copy");
    rng.collapse(false);
    alert("复制成功!");
    }
    </script>

    七、浏览器兼容  copyToClipboard("拷贝内容")

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

    八、兼容各大浏览器的复制代码(结合ZeroClipboard.js)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <html>
    <head>
    <title>Zero Clipboard Test</title>
    <script type="text/javascript" src="ZeroClipboard.js"></script>
    <script language="JavaScript">
     var clip = null;
     function $(id) { return document.getElementById(id); }
     function init() {
         clip = new ZeroClipboard.Client();
         clip.setHandCursor(true);    
         clip.addEventListener('mouseOver', function (client) {
      // update the text on mouse over
      clip.setText( $('fe_text').value );
         });
          
         clip.addEventListener('complete', function (client, text) {
      //debugstr("Copied text to clipboard: " + text );
      alert("该地址已经复制,你可以使用Ctrl+V 粘贴。");
         });
         clip.glue('clip_button', 'clip_container' );
     }
    </script>
    </head>
    <body onLoad="init()">
    <input id="fe_text" cols=50 rows=5 value=复制内容文本1 >
    <span id="clip_container"><span id="clip_button"><b>复制</b></span></span>
    </body>
    </html>

    来自http://www.jb51.net/article/51321.htm

  • 相关阅读:
    Linux免密登录
    HDFS shell 常用命令
    zabbix4.4图表中文显示乱码解决办法
    安装zabbix-agent
    安装配置zabbix4.4
    elasticsearch插件sql安装
    dedecms调用头部文件 dede:include时页面出现一行空白的解决方案
    DedeCMS <=5.7 SP2 file_class.php 任意文件上传漏洞
    DedeCMS后台文件任意上传漏洞media_add.php的修改方法
    织梦DEDECMS任意文件上传漏洞与注入漏洞修复方法
  • 原文地址:https://www.cnblogs.com/liuwenbohhh/p/4730066.html
Copyright © 2011-2022 走看看