Google chrome extension 如何在chrome扩展的弹出窗口中提示用户剪贴板读取权限?

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

我正在构建我的第一个Google Chrome扩展,希望创建一些可以读写系统剪贴板的东西。 我目前正在将所有的js放在popup.html为扩展导入的脚本中

我还拥有manifest.json中声明的剪贴板读取和剪贴板写入权限

我能够将数据写入剪贴板,但无法从中读取数据

我在popup.html上有一个按钮,它有一个id,在js中我按id获取元素,并添加一个eventlistener用于单击,该按钮触发一个名为“粘贴”的函数,该函数反过来调用navigator.clipboard.readText。根据我的理解,这应该是为了得到许可,但它没有做任何事情

您知道从popup.html调用readText是否可以吗? 如果是这样,如何得到提示显示?
提前谢谢

如果您将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: