用于复制文本的按钮可代替页面源

时间:2018-08-14 00:36:43

标签: javascript

要添加的内容不多。此按钮以前有效。它将复制其中的代码。现在,每按一次value="#code"就会向用户显示但不会复制吗?

<input type="text" class="buttontxt" value="#Code" id="code" disabled>
<button class="button copy" onclick="myFunction()">Copy Code</button>

<script>
function myFunction() {
  var copyText = document.getElementById("code");
  copyText.select();
  document.execCommand("copy");
  alert("Copied the code: " + copyText.value);
}
</script>

不知道为什么这突然发生了。在所有浏览器和移动设备中均已损坏。如果有人因为我一无所知而可以再次进行这项工作,将不胜感激。

2 个答案:

答案 0 :(得分:0)

某些命令需要一个值才能完成。

  

document.execCommand(命令,showUI,值)

您需要传递值。

答案 1 :(得分:0)

问题似乎在于您的input元素是disabled。有关更多说明,请参见this Stack Overflow post,但您应将disabled属性更改为readonly,以便您的select()调用实际上可以选择文本。现在,由于从未选择文本,因此调用document.execCommand("copy")时没有任何内容可复制,但是由于JS可访问该文本,因此按预期在alert对话框中显示该文本,因此行为差异。这是您的代码的有效版本:

<input type="text" class="buttontxt" value="#Code" id="code" readonly>
<button class="button copy" onclick="myFunction()">Copy Code</button>

<script>
function myFunction() {
  var copyText = document.getElementById("code");
  copyText.select();
  document.execCommand("copy");
  alert("Copied the code: " + copyText.value);
}
</script>