我正在创建一个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()
来查看用户当前突出显示的内容,并假设这就是刚刚复制的内容。但是,这似乎并不总是能产生正确的结果,并且依赖此替代方法似乎是一个错误。这是最好的解决方案吗?