当我运行此脚本(嵌入 HTML 页面中)时,“GG”不会复制到剪贴板。有人可以帮助/解释原因并协助我使其正常工作吗?谢谢。
document.getElementById("blah3");
let s ="GG";
navigator.clipboard.writeText(s);
就像评论中的链接所说,出于安全原因,您需要将剪贴板写入附加到用户操作。通常,您让用户单击按钮并为其添加事件侦听器。
function writeToClipboard() {
navigator.clipboard.writeText('GG');
}
document.querySelector('#my-button').addEventListener('click', writeToClipboard)
如果你真的想在安全性方面摇摆不定,你可以做一些有问题的事情,比如将回调附加到焦点、keydown 和 mousedown 事件,以确保它尽快执行。
并不是说我推荐,而是...
let wrote = false;
function writeToClipboard() {
if (wrote) return;
navigator.clipboard.writeText('GG');
wrote = true;
}
window.addEventListener('focus', writeToClipboard, {once: true});
window.addEventListener('mousedown', writeToClipboard, {once: true});
window.addEventListener('keydown', writeToClipboard, {once: true});