Google chrome extension 如何在chrome扩展的弹出窗口中提示用户剪贴板读取权限?
我正在构建我的第一个Google Chrome扩展,希望创建一些可以读写系统剪贴板的东西。 我目前正在将所有的js放在popup.html为扩展导入的脚本中 我还拥有manifest.json中声明的剪贴板读取和剪贴板写入权限 我能够将数据写入剪贴板,但无法从中读取数据 我在popup.html上有一个按钮,它有一个id,在js中我按id获取元素,并添加一个eventlistener用于单击,该按钮触发一个名为“粘贴”的函数,该函数反过来调用navigator.clipboard.readText。根据我的理解,这应该是为了得到许可,但它没有做任何事情 您知道从popup.html调用readText是否可以吗? 如果是这样,如何得到提示显示?Google chrome extension 如何在chrome扩展的弹出窗口中提示用户剪贴板读取权限?,google-chrome-extension,html5-clipboard-api,Google Chrome Extension,Html5 Clipboard Api,我正在构建我的第一个Google Chrome扩展,希望创建一些可以读写系统剪贴板的东西。 我目前正在将所有的js放在popup.html为扩展导入的脚本中 我还拥有manifest.json中声明的剪贴板读取和剪贴板写入权限 我能够将数据写入剪贴板,但无法从中读取数据 我在popup.html上有一个按钮,它有一个id,在js中我按id获取元素,并添加一个eventlistener用于单击,该按钮触发一个名为“粘贴”的函数,该函数反过来调用navigator.clipboard.readTex
提前谢谢 如果您将JQuery作为后台脚本,您可以使用此脚本。我在chrome扩展中一直使用此脚本将文本移动到剪贴板,然后如果您有过去的方法,您可以在settimeout中执行此操作
function copyUsingJquery(element_id) {
$(element_id).attr("contenteditable", true)
.select()
.on("focus", function () {
document.execCommand('selectAll', false, null)
})
.focus();
document.execCommand("Copy");
$(element_id).removeAttr("contenteditable");
setTimeout(function () {
//deslect text on page after a few seconds
//$(element_id).trigger("blur");
window.getSelection().removeAllRanges();
}, 5000);
}
然后用下面的函数调用上面的函数,其中一些是html,您的元素可以是div/必须可见或定位为不可见
copyUsingJquery("#some_html");
希望这能有所帮助。我记得在Chrome上看到它时,它很可能是一个bug。您必须使用经典的方法-查找document.execCommand粘贴。请注意,权限名称是clipboardRead和clipboardWrite。@wOxxOm感谢您的建议,将测试document.exece命令。我注意到一些文档说剪贴板读取的权限是剪贴板读取,而另一些文档说剪贴板读取。奇怪。扩展权限总是如此。其他任何操作都是错误的。使用document.exece命令后,它成功了!谢谢@woxxomreplicate: