我使用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可见。
答案 0 :(得分:1)
document.execCommand('copy')
仅在受信任的用户操作时有效,例如点击事件。
有关详细信息:http://www.w3.org/TR/clipboard-apis/#integration-with-rich-text-editing-apis