首页 > 解决方案 > 获取 Chrome 扩展程序读取复制文本的权限

问题描述

我正在创建一个 Chrome 扩展程序。我希望能够看到用户从 Chrome 复制到剪贴板的内容。这是我目前在内容脚本中所做的工作:

document.addEventListener(
    "copy",
    () => navigator.clipboard.readText().then(
        text => console.log("copied text: " + text)
    )
);

出于安全原因,Chrome 不允许您从复制事件本身获取剪贴板。相反,我必须从navigator. 唯一的问题是,Chrome 每次从不同网站复制内容时都会请求用户许可。

从安全的角度来看,这是有道理的。由于内容脚本的行为就像是在网页上运行的脚本,因此 Chrome 希望向用户验证他们信任该网站是有道理的。但是,我正在尝试通过 Chrome扩展来执行此操作,因此理想情况下,用户应该只需要“信任我”一次。出于我的目的,用户不得不在每个新页面上点击“允许”按钮来复制内容,这太不方便了。

在这种情况下,我一直在寻找可以帮助我的 Chrome API 中的一些东西,但我没有成功。我看到可以为用户手动复制一些东西,但我想看看用户自己复制了什么。我正在寻找的可能吗?

编辑:

另一个潜在的解决方法:我可以打电话window.getSelection().toString()来查看用户当前突出显示的内容,并假设这就是刚刚复制的内容。但是,似乎这可能并不总是产生正确的结果,并且依赖这种解决方法似乎可能是一个错误。这是最好的解决方案吗?

标签: javascriptgoogle-chromecopyclipboard

解决方案


推荐阅读