如何阻止内容脚本自行启动

时间:2019-12-06 18:21:00

标签: javascript google-chrome-extension

我的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()

但是我不知道如何正确使用它们。

1 个答案:

答案 0 :(得分:1)

在您的后台脚本中,执行以下操作:

setup.cfg

然后在内容脚本中,您可以通过以下方式拦截此消息:

chrome.windows.onCreated.addListener(function(tab) {
    let msg = {txt: "execute"};
    chrome.tabs.sendMessage(tab.id, msg);
};

文档在这里。 https://developer.chrome.com/extensions/runtime#method-sendMessage https://developer.chrome.com/extensions/runtime#event-onMessage