js剪切板为什么没有复制成功?

有弹窗但是没有复制成功
<script type="text/javascript">
window.onload=function(){

      function test(){
        var aux = document.createElement("input");
        var content = 'test';
        aux.setAttribute("value", content);
        document.body.appendChild(aux);
        aux.select();
        document.execCommand("copy");
        alert("复制成功");
      }
      test();

}
</script>

阅读 3.5k
3 个回答

不是复制功能不行,是你放在onload里面不行,你放个button,点击的时候调用test,就能运行了

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Test</title>
</head>
<body>
  <button onclick="test()">哈哈哈哈哈</button>
  <script> 
    function test() {
      var aux = document.createElement("input");
      var content = 'test';
      aux.setAttribute("value", content);
      document.body.appendChild(aux);
      aux.select();
      var res = document.execCommand("copy");
      if (res) {
        alert("复制成功");
      } else {
        alert("复制失败");
      }
    }
  </script>
</body>
</html>

我觉得是浏览器处于安全的考虑,禁止了这种自动调用复制的功能,一定要用户手动触发下才可以

你这段代码的弹窗必定弹出成功,跟是否复制成功没有关系吧?
想正确提示得改成这样

window.onload = function () {
  function test() {
    var aux = document.createElement("input");
    var content = 'test';
    aux.setAttribute("value", content);
    document.body.appendChild(aux);
    aux.select();
    var res = document.execCommand("copy");
    if (res) {
      alert("复制成功");
    } else {
      alert("复制失败");
    }
  }
  test();
}

刚试了下 只有ie11下成功,chrome edge firefox 均失败

clipboard.js 了解一下 这个更方便一点

推荐问题