浏览器复制插件zeroclipboard使用指南,原生js完成

时间:2020-02-15 10:10来源:亚洲城ca88唯一官方网站
script//原生js实现复制内容到剪切板,兼容pc、移动端(支持Safari浏览器)function copyTxt(text){if(typeof document.execCommand!=="function"){alert("复制失败,请长按复制");return;}var dom = document.createEle
script//原生js实现复制内容到剪切板,兼容pc、移动端(支持Safari浏览器)function copyTxt(text){if(typeof document.execCommand!=="function"){alert("复制失败,请长按复制");return;}var dom = document.createElement("textarea");dom.value = text;dom.setAttribute('style', 'display: block;width: 1px;height: 1px;');document.body.appendChild(dom);dom.select();var result = document.execCommand('copy');document.body.removeChild(dom);if (result) {alert("复制成功");return;}if(typeof document.createRange!=="function"){alert("复制失败,请长按复制");return;}var range = document.createRange();var div=document.createElement('div');div.innerHTML=text;div.setAttribute('style', 'height: 1px;fontSize: 1px;overflow: hidden;');document.body.appendChild(div);range.selectNode(div);const selection = window.getSelection();if (selection.rangeCount  0){selection.removeAllRanges();}selection.addRange(range);document.execCommand('copy');alert("复制成功")}/script

jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板

  本文将结合实例讲解如何使用一款基于jQuery的插件——Zclip来实现复制内容到剪贴板的功能。其实IE上有个方法可以实现点击复制,但是由于只是IE独有,所以我们不提倡。而Zclip是利用一个隐藏的flash文件来完成复制的功能,关键是它兼容当前各主流浏览器。

  WEB开发中,要让用户复制页面中的一段代码、URL地址等信息,为了避免用户拖动鼠标再进行右键复制操作而可能出现的差错,我们可以直接在页面中放置一个复制按钮,只需要轻轻一点这个复制按钮,内容将会被复制,然后用户可以粘贴到想粘贴的地方。

图片 1

  HTML

  首先需要在页面中载入jquery库和zclip插件,这两个文件已经打好包,欢迎点击下载。

  ?

1

2

<script type=``"text/javascript" src=``"js/jquery.js"``></script>

<script type=``"text/javascript" src=``"js/jquery.zclip.min.js"``></script>

  接着我们在页面中的body部分加入如下代码:

  ?

1
2
<textarea id="mytext">请输入内容</textarea><br/> 
<a href="#" id="copy_input" class="copy">复制内容</a>

  页面中放置了一个输入框textarea,当然也可以是其他html元素,然后就是一个复制按钮,也可以是链接文本形式。

  Javascript

  当点击“复制内容”时,调用zclip插件,并提示复制成功,请看代码:

  ?

1
2
3
4
5
6
7
8
9
10
11
$(function(){ 
  $('#copy_input').zclip({ 
    path: 'js/ZeroClipboard.swf'
    copy: function(){//复制内容 
      return $('#mytext').val(); 
    }, 
    afterCopy: function(){//复制成功 
      $("<span id='msg'/>").insertAfter($('#copy_input')).text('复制成功'); 
    
  }); 
});

  值得注意的是如果是复制的内容来自输入框input、textarea等,copy对象使用:

  ?

1
2
3
copy: function(){ 
  return $('#mytext').val(); 
}

  如果是复制的内容来自页面元素div、p之类的,copy对象使用:

  copy: $('#mytext').text();

  这样就完成了复制内容到剪贴板的功能。

本文将结合实例讲解如何使用一款基于jQuery的插件Zclip来实现复制内容到剪贴板...

浏览器复制插件zeroclipboard使用指南,zeroclipboard复制

一个简单例子:

<html>
 <body>
  <button id="copy-button" data-clipboard-text="Copy Me!" title="Click to copy me.">Copy to Clipboard</button>
  <script src="~/Scripts/jquery-1.7.1.js"></script>
  <script src="~/Scripts/ZeroClipboard.js"></script>
 </body>
 <script>

 var client = new ZeroClipboard( $("#copy-button") );
  client.on('ready', function (event) {

      client.on('copy', function (event) {
        event.clipboardData.setData('text/plain', event.target.innerHTML);
        alert("复制成功");
      });

      client.on('aftercopy', function (event) {
        //复制之后的操作,如果不是自动在本页面粘贴,请把此事件备注掉
        console.log('Copied text to clipboard: '   event.data['text/plain']);
      });
    });

    client.on('error', function (event) {
      //出错的时候该干嘛
      // console.log( 'ZeroClipboard error of type "'   event.name   '": '   event.message );
      ZeroClipboard.destroy();
    });
 </script>
</html>

2.2版本需要引用jquery,要习惯把js代码写到页面底部,经测试,发现此代码不支持IE10/11,以下提供兼容IE的function,替换js部分即可

<script>
    $(function() {
      var text="取文本";
      var msg="复制成功";
      clipboard("btn_copy",text,msg);
    });

    //参数说明
    //button:按钮id
    //text:要复制的文本
    //msg:复制成功提示文本
    function clipboard(button,text,msg) {

      if (window.clipboardData) {    //for ie
        var copyBtn = document.getElementById(button);
        copyBtn.onclick = function () {
          window.clipboardData.setData('text', text);
          alert(msg);
        }
      } else {
        var client = new ZeroClipboard($("#"   button));
        client.on('ready', function (event) {

          client.on('copy', function (event) {
            event.clipboardData.setData("text/plain", text);
            alert(msg);
          });
        });

        client.on('error', function (event) {
          ZeroClipboard.destroy();
        });
      }
      return false;
    }
  </script>

最后,需要注意的是不要在本地调度,你会发现不会生效,因为Flash的安全限制

zeroclipboard源码:
zeroclipboard官网:zeroclipboard.org

js:

相关文章

  • jQuery插件Zclip实现完美兼容个浏览器点击
  • mysql把一个表某个字段的内容复制到另一
  • JS将制定内容复制到剪切板示例代码
  • 复制内容自动添加版权信息js代码
  • 关闭ie8复制内容时弹出安全警告办法
  • 如何让Word2003复制内容时不存入剪贴板

相关搜索: Zclip 复制内容

今天看啥

搜索技术库

返回首页

  • jQuery插件Zclip实现完美兼容个浏览器点击复制
  • 兼容主流浏览器的JS复制内容到剪贴板,js剪
  • zclip 复制内容到剪切板
  • wordpress禁止复制内容的实现方法
  • mysql把一个表某个字段的内容复制到另一张表
  • Excel2007如何只复制批注不复制内容?

相关频道: HTML/CSS  HTML5  Javascript  jQuery  AJax教程  前端代码  正则表达式  Flex教程  WEB前端教程  

您可能感兴趣的文章:

  • zeroclipboard复制到剪切板的flash
  • zeroclipboard 单个复制按钮和多个复制按钮的实现方法
  • 使用ZeroClipboard解决跨浏览器复制到剪贴板的问题
  • ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
  • jQuery zclip插件实现跨浏览器复制功能

一个简单例子: html body button id="copy-button" data-clipboard-text="Copy Me!" title="Click to copy me....

在网上看到有很多该功能的实现代码,除了插件clipboard.js、ZeroClipboar兼容性较好以外,其他大部分在safari,ios上的微信端这些并不兼容。那么在不使用插件的情况下,为大家整理了一份较为兼容的实现方式:纯js实现复制文本并提示复制成功(干货)适用所有浏览器,直接放项目就能用。

时间: 2020-01-09阅读: 318标签: 复制

代码如下:

在开发中经常会遇到这样的需求,第一种就是点击复制当前页面的链接,第二种就是类似卡券的功能,需要复制密码等等。

a onclick="copyTxt('这是要复制的内容哦')"点击复制/a

编辑:亚洲城ca88唯一官方网站 本文来源:浏览器复制插件zeroclipboard使用指南,原生js完成

关键词: 亚洲城ca88