1

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

我也有在manifest.jsonforclipboard-readclipboard-write.

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

我有一个buttonpopup.html那个有一个id和在 js 我通过 id 获取元素并添加一个事件监听器点击触发一个名为 paste 的函数,该函数又调用navigator.clipboard.readText(). 据我了解,这应该提示许可,但它没有做任何事情。

您知道readText从调用是否可以popup.html吗?如果是这样,如何让提示出现?提前致谢!

4

1 回答 1

-1

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

        }

然后使用以下内容调用上述函数,其中 some_html 是您的元素(可能是 div/必须可见或定位为不可见......

copyUsingJquery("#some_html");

希望这可以帮助。

于 2019-01-29T00:28:23.183 回答