我正在为chrome. 面临将文本复制到js的问题。复制代码本身很简单。
问题的本质是代码没有复制到剪贴板。
有人可以帮助解决问题吗?
这是代码本身。
function copyToClipboard() {
/* Get the text field */
var copyText = document.getElementById("clipboard-text");
/* Select the text field */
copyText.select();
copyText.setSelectionRange(0, 99999); /*For mobile devices*/
/* Copy the text inside the text field */
document.execCommand("copy");
/* Alert the copied text */
alert("Copied the text: " + copyText.value);
}
document.getElementById('clipboard-copy').addEventListener("click", copyToClipboard);
单击按钮后,Copy会触发一个事件,但文本并未完全复制到剪贴板。


确保您已请求
"clipboardWrite"权限:清单.json:
乍一看,代码看起来是正确的。在我的扩展中,我使用了一个非常相似的片段:
应该使用新的剪贴板 API。
有了它,复制到缓冲区是由方法执行的,该方法
navigator.clipboard.writeText()将字符串值作为参数 - 要复制的文本。返回结果
Promise——也就是说,执行是异步的……但另一方面,您可以方便地捕获错误。是的,而且async+await没有人取消;)从 Chrome 扩展程序中的弹出窗口调用方法时,不需要额外的权限。
在 Firefox 扩展中,它们也是可选的,但有一个条件是方法调用必须在用户发起的事件处理程序的回调中执行(例如,在单击处理程序中)。
我在 Chrome v77 开发人员模式下检查了扩展程序,一切正常。
重复测试扩展的示例:
测试扩展清单:
在网页上使用时(即不在扩展程序中),需要考虑三件事:
显然,剪贴板 API 仅在页面通过 HTTPS 加载时才有效
某些浏览器可能会要求您通过 Permissions API 请求权限
剪贴板 API 是实验性的,这意味着较旧/滞后的浏览器不支持它,并且(目前)Android WebView 缺少支持(Android 版 Chrome 支持)
MDN 页面:https ://wiki.developer.mozilla.org/en-US/docs/Web/API/Clipboard
奇怪,它在浏览器和扩展程序中都适用于我,没有任何额外的权限 - 而且
execCommand,两者clipboard.writeTextChrome 版本 77.0.3865.120(官方构建),(64 位)
包括,代码也在这里工作
清单副本
您可以尝试将此文件夹作为扩展连接或在浏览器中运行它
https://yadi.sk/d/055Y4jgQCTuJWQ
当然是UPD
错字
ctrl+pctrl+v