如何使用Javascript复制纯文本值

时间:2016-01-16 01:29:32

标签: javascript

function copytext(text) {
    var textField = document.createElement('textarea');
    textField.innerText = text;
    document.body.appendChild(textField);
    textField.select();
    document.execCommand('copy');
    textField.remove();
}

我在Reddit上找到了这个代码,我觉得它会起作用,因为创建一个元素然后SELECT IT然后执行命令' copy'是合乎逻辑的。但我很惊讶它没有,我不知道为什么。

在Chrome开发者控制台上运行此脚本时没有错误,这是我想要执行它的地方,而这正是我不想听到的答案任何API 与复制有关。如果你能告诉我如何在chrome dev工具上使用API​​,那么请随时告诉我。

如果我遗漏了一些事情,或者您对此有疑问。

1 个答案:

答案 0 :(得分:1)

代码在没有用户交互的情况下无法工作,如果您尝试从控制台运行它,它将无法正常工作。

运行代码的唯一方法是将函数绑定到按钮或类似的东西。



function copytext(text) {
    var textField = document.createElement('textarea');
    textField.innerText = text;
    document.body.appendChild(textField);
    textField.select();
    document.execCommand('copy');
    textField.remove();
  }

<button onclick='copytext("some text")'>copy some text!</button>
&#13;
&#13;
&#13;

您可以尝试从开发控制台调用document.queryCommandSupported("copy")document.queryCommandEnabled("copy")以及按钮来验证这一点。

Google Developers

请参阅底部的已知错误部分。