是否可以在剪贴板中放置一个变量?我看过很多文章,它们都是通过选择DOM元素中存在的文本然后进行复制来完成的,这很简单,但是我还没有看到可以复制不在DOM中的内容的文章。
我想要一个包含字符串的变量或常量,然后将其发送到剪贴板,而使其不出现在浏览器窗口中(甚至作为隐藏元素)。
我知道使用隐藏元素将是解决此问题的快速方法,但是如果有更简洁的方法,它会显得有些笨拙。
答案 0 :(得分:6)
您可以使用clipboard API。它尚无完全支持,但为pretty good。
您可以像这样使用它:
navigator.clipboard.writeText("hello from site!")
.then(() => console.log(`wrote to clipboard!`))
.catch((error) => console.error(error));
请注意,这仅在当前网站(文档集中)为重点时有效
为了从剪贴板中阅读,您可以使用以下功能:
navigator.clipboard.readText()
.then(text => console.log(text))
.catch((error) => console.error(error));
此功能需要两件事才能起作用:
对于Firefox,除了要求用户授予读取剪贴板的权限外,it also only allows pasting it into a textarea:
Firefox支持版本54中的“ clipboardRead”权限,但仅支持以内容可编辑模式粘贴到元素中,而内容脚本只能与一起使用。对于后台脚本,可以将任何元素设置为内容可编辑模式。
答案 1 :(得分:3)
您要的是Javascript,而不是jquery,所以您可以开始使用
。function toClip(text) {
var copy = document.createElement("textarea");
document.body.appendChild(copy);
copy.value = text;
copy.select();
document.execCommand("copy");
document.body.removeChild(copy);
}
虽然它不使用DOM中的现有元素,但会创建一个元素并立即将其删除。
此