3
目前,我们这是在manifest.json文件中初始化如下内容的脚本:内容脚本在Chrome扩展程序被执行多次
"content_scripts": [
{
"matches": [
"https://docs.google.com/*"
],
"js ["content.js"],
"run_at": "document_start",
"all_frames": true,
"match_about_blank": true
}
],
其设置为运行每次用户加载了谷歌文档文档。然而,通过查看控制台日志,好像内容脚本被加载(是正确的单词注入?)多次,因为我们得到多个控制台日志。
我读过一些其他的答案,这可能与内容脚本加载一次,当谷歌文档标签加载一次,一旦它完成加载,所以它运行多次的事实;尽管如何防止这种情况发生?
好的,谢谢你!那么,如果我们试图监控用户对Google文档的使用情况,并且需要将我们的内容脚本注入到所有iframe中,但是我们不希望我们的内容脚本多次运行?那可能吗? –
这些看起来像是从根本上反对的目标。你有一个约束,你需要将内容脚本注入到所有的框架中。这意味着它将在所有这些中运行;这是不可避免的。这听起来像你想要做的是“使用来自各种帧的信息,只运行一次脚本,然后改变(一些?)这些帧”。为此,您需要一种方式让内容脚本互相协调和交流。你需要一个单独的共享状态。你可以使用“背景脚本”内容脚本可以发送消息,并且可以发回消息。 – Birchlabs
不需要内容脚本。请参阅选项卡API –