【发布时间】:2019-12-07 02:32:12
【问题描述】:
我的 manifest.json 匹配每个 URL。因此,只要在 Chrome 中打开 URL,就会激活内容脚本。
当前程序:
(1) 我的后台脚本将当前的空 URL 更新为某些内容。
(2) 我的内容脚本已激活,因为它是 manifest.json 中的匹配项。我的内容脚本需要访问同一网站上的多个 URL。它单击链接并返回(= 一个选项卡中的所有内容)-> 内容脚本再次调用自身,因为打开了另一个 URL。
问题:
我不希望内容脚本多次调用自身。例如,它应该仅在从后台脚本收到新 URL 已打开的消息时才激活。
想法:
chrome.windows.onCreated.addListener(function()) 是我在后台脚本中的所有代码。我正在寻找的内容脚本是否有类似的东西?
可能是这样的:
- window.addEventListener
- browser.runtime.onMessage.addListener
- browser.runtime.sendMessage
- browser.runtime.onMessage
- browser.tabs.sendMessage()
但我不明白如何正确使用它们。
【问题讨论】:
-
从 manifest.json 中完全删除“content_scripts”部分并改用programmatic injection。
-
所以我不会有内容脚本的 .js 并将所有内容放在 background.js 中?
-
不,您将有两个脚本,请参阅我链接的文档。
标签: javascript google-chrome-extension