clipboard.js存在的问题

clipboard.js  是一个复制到剪贴板的库。

github:https://github.com/zenorocha/clipboard.js

兼容性:IE9一下不支持。

再做微信端的项目接到了一个需求。点击按钮把指定的内容复制到剪贴板中。

刚开始用的是:document.execCommand("Copy"); 大部分的属性只有IE支持。比如:贴贴。

想了想我只用复制而且用的是微信端。只要安卓和苹果支持能够使用就可以了。

<input type="text" id="contents" value="测试复制">
<a id="but" onclick="jsCopy()">点击复制</a>

<script type="text/javascript">
    function jsCopy(){
      var e=document.getElementById("contents");//对象是contents
      e.select(); //选择对象
      tag=document.execCommand("Copy","false",null); //执行浏览器复制命令
      if(tag){
        alert('复制内容成功');
      }
    }
</script>   

emmmmmmm。缺点就是:必须要一个input文本框才能使用。而且还不能display:none隐藏掉。必须opacity。

有点坑,先测试,安卓华为:成功。苹果5:失败。

苹果失败了那就pass掉。

从网上找找有没有库。ZeroClipboard.js

这个库通过加载一个 Flash 来实现的。这个我是拒绝的。不过后来测试了一下。安卓成功,苹果失败。(可能没仔细研究)

再找:

Clipboard.js 。体积少,没有引入乱七八糟的东西。我比较喜欢。

 <a id="but" >点击复制</a>

<script type="text/javascript">
    var clipboard = new Clipboard('#but', {
    text: function() {    // 如果想从其它DOM元素内容复制。应该是target:function(){return: };
      return '测试复制';
    }
  });
  clipboard.on('success', function(e) {
    alert("复制成功");
  });

  clipboard.on('error', function(e) {
    alert("复制失败");
  });
</script>

结构比较明确。new一个实例。然后调用方法。

再测试,安卓:成功。 苹果:失败。

why!!!!!

从网上找:

想让苹果支持这个功能。元素只能为button标签。其它均不成。

 <button id="but" >点击复制</button>

<script type="text/javascript">
    var clipboard = new Clipboard('#but', {
    text: function() {    // 如果想从其它DOM元素内容复制。应该是target:function(){return: };
      return '测试复制';
    }
  });
  clipboard.on('success', function(e) {
    alert("复制成功");
  });

  clipboard.on('error', function(e) {
    alert("复制失败");
  });
</script>

 成功!。

猜你喜欢

转载自www.cnblogs.com/xf-zhao/p/9146150.html
今日推荐