JS复制到剪贴板不起作用

时间:2018-06-04 20:58:22

标签: javascript ecmascript-6 clipboard

我使用fetch获取一些文本并将此文本放入textarea。然后我选择文本并尝试复制它,但它不起作用。这是代码。

 const copy_text_from_file = (filename) => {
  fetch('/texts/show/?filename=' + filename, {
    credentials: 'include'
  }).then(function(response) {
    return response.json();
  }).then(function(json) {
    const textarea = document.getElementById('clipboard');
    textarea.focus();
    textarea.innerHTML = json.content;
    textarea.select();
    console.log( document.execCommand('copy') ); // writes false to console
  });
};

插入文本并选择textarea并使其处于焦点,但不会复制任何内容。当我从浏览器的控制台运行document.execCommand('copy')时,它可以工作。我尝试添加超时但它没有帮助。我尝试添加带有点击事件监听器的按钮和带有click()的触发按钮来复制所选文本,但它也没有帮助。

PS Textarea可见。

1 个答案:

答案 0 :(得分:1)

document.execCommand('copy')仅在受信任的用户操作时有效,例如点击事件。

有关详细信息:http://www.w3.org/TR/clipboard-apis/#integration-with-rich-text-editing-apis