javascript代码复制内容到剪切板 兼容IE,谷歌chrome,safari浏览器

javascript | 2020-04-15 17:16:37

1.兼容IE,chrome

之前写过一个案例,可以复制内容到粘贴板,但只支持IE和chrome

var copyText=$("#downloadContent").text();
                if (window.clipboardData) {
                    window.clipboardData.clearData();
                    window.clipboardData.setData("Text", copyText);
                }else{
                    var save = function (e){
                        e.clipboardData.setData('text/plain',copyText);//下面会说到clipboardData对象
                        e.preventDefault();//阻止默认行为
                    }

                    document.addEventListener('copy',save);
                    document.execCommand("copy");//使文档处于可编辑状态,否则无效
                }

2.兼容IE,谷歌chrome,safari浏览器

为了兼容safari,发现最好是自动选中,然后执行复制命令,就写了下面的新案例,兼容IE,谷歌chrome,safari浏览器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
  <style>
    
  </style>
</head>
<body >
    <div class="div1">
     
  </div>
  <div id="cardList">
        <button class="btn" id='btn'>点击我,复制我</button>
      <div id='copy'/> 哈哈 哈哈哈 哈哈 </div>
  </div>
   
</body>
    
    <script>
      var btn = document.querySelector('#btn');
      btn.addEventListener('click',function(){
          let input = document.getElementById('copy');
          const range = document.createRange();
          range.selectNode(input);
          const selection = window.getSelection();
          if(selection.rangeCount > 0) selection.removeAllRanges();
          selection.addRange(range);
          document.execCommand('copy');
      })
    </script>
 
</html>

 

 

 

登录后即可回复 登录 | 注册
    
关注编程学问公众号