使用 javascript 触发写入剪贴板的 HTML id

问题描述 投票:0回答:1

当我运行此脚本(嵌入 HTML 页面中)时,“GG”不会复制到剪贴板。有人可以帮助/解释原因并协助我使其正常工作吗?谢谢。

document.getElementById("blah3");
let s ="GG";
navigator.clipboard.writeText(s);
javascript html clipboard
1个回答
0
投票

就像评论中的链接所说,出于安全原因,您需要将剪贴板写入附加到用户操作。通常,您让用户单击按钮并为其添加事件侦听器。

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});
© www.soinside.com 2019 - 2024. All rights reserved.