使用JS将任何标签内的文本复制到剪贴板

时间:2018-08-09 04:32:40

标签: javascript php html

我需要复制〜p〜标记内的文本,我尝试使用此代码:

HTML:

<p id="copy">Text to copy</p>
<button onclick="copyFunction()">Copy text</button>

JS:

function copyFunction() {
   var textToCopy = document.getElementById("copy");
   textToCopy.select();
   document.execCommand("copy");
   alert("Copied the text: " + textToCopy.value);
}

但是没有用。

3 个答案:

答案 0 :(得分:2)

function copyFunction() 
{
    var $temp = $("<input>");
    $("body").append($temp);
    $temp.val($('#copy').text()).select();
    document.execCommand("copy");
    $temp.remove();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="copy">Text to copy</p>
<button onclick="copyFunction()">Copy text</button>

答案 1 :(得分:0)

您也可以使用window.clipboardData.setData("text/plain", Your text from p tag);

答案 2 :(得分:0)

您可以这样走。未经测试,但可以工作。

   const ptag = document.querySelector("p");

   ptag.onclick = function() {
      document.execCommand("copy");
   }

   ptag.addEventListener("copy", function(event) {
      event.preventDefault();
      if (event.clipboardData) {
         event.clipboardData.setData("text/plain", ptag.textContent);
         console.log(event.clipboardData.getData("text"))
      }
   });

现在单击<p>标签。该标签中的文本将被复制到剪贴板。