为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 Javascript 中将文本复制到剪贴板

无法在 Javascript 中将文本复制到剪贴板

ABOUTYOU 2023-10-30 20:59:49
我在尝试了解如何将文本复制到剪贴板的不同方法时遇到了很多问题。如果有人能向我解释为什么我的代码不起作用,我将非常感激。<!DOCTYPE HTML><html dark= "true" style="font-size: 50px;font-family: Roboto, Arial, sans-serif"><body>  <textarea id="copytext">ROGER</textarea>  <div class="button" id="adadad">    <button onclick="copyS()" id="dlld">    </button>  </div><p> </p><script type=text/javascript">function copyS{ clicked = document.getElementById("dlld");}if ("dlld" == clicked){   var am1 = document.getElementById("copytext");   document.execCommand("copy");}}</script><p> </p></body></html>
查看完整描述

4 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

好的,我对您的代码做了一些调整,但它现在应该可以工作了。


<!DOCTYPE HTML>

<html dark= "true" style="font-size: 50px;font-family: Roboto, Arial, sans-serif">

  <body>

    <textarea id="copytext">ROGER</textarea>

    <div class="button" id="adadad">

      <button onclick="copyS()" id="dlld">Copy text</button>

    </div>

    <p> </p>


    <!-- removed the single " at the end of your script tag -->

    <script type=text/javascript>

      //added () after you declared your function

      function copyS(){ 

        clicked = document.getElementById("dlld");

        //added .id to clicked. Not sure why you need to do this, but it works now

        if ("dlld" == clicked.id){

          var am1 = document.getElementById("copytext");

          //you need to select before running the .execCommand

          am1.select();

          document.execCommand("copy");

        }

      }

    </script>


    <p> </p>

  </body>

</html>


查看完整回答
反对 回复 2023-10-30
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

看来您需要select()首先从文本区域获取文本。尝试将您的功能更改为:


function copyS{ 

   var clicked = document.getElementById("dlld");


   //if ("dlld" == clicked){ //Not sure you need this

      var am1 = document.getElementById("copytext");

      am1.select();

      document.execCommand("copy");

   //}

}

希望有帮助!


查看完整回答
反对 回复 2023-10-30
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

我已经更改了您的代码来完成这项工作。


var copiedText = "";

document.querySelector("button").onclick = function(e) {

  copiedText = e.target.previousElementSibling.value;

  document.execCommand("copy");

}


document.body.oncopy = function(e) {

  event.clipboardData.setData('text/plain', copiedText);

  event.preventDefault();

};

body {

  font-size: 50px;

  font-family: Roboto, Arial, sans-serif;

}

<textarea>ROGER</textarea>

<button>Copy</button>


查看完整回答
反对 回复 2023-10-30
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

尝试这个


(<button id="demo" onclick="copyToClipboard(document.getElementById('demo').innerHTML)">This is what I want to copy</button>)


(<script>

function copyToClipboard(text) {

window.prompt("Copy to clipboard: Ctrl+C, Enter", text);

}

</script>)


查看完整回答
反对 回复 2023-10-30
  • 4 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信