Chrome扩展程序onCreatedNavigationTarget Listener停止工作

时间:2019-12-23 11:09:45

标签: javascript google-chrome google-chrome-extension

我将具有chrome.webNavigation.onCreatedNavigationTarget.addListener的侦听器添加到manifest.json中具有webNavigation权限的background.js中,当我对其进行测试时,它可以正常工作。

我跳过了几天的工作,然后尝试继续,但是侦听器根本不运行回调函数。如果我从chrome//extensions刷新它,它将再次起作用。 我没有关闭此扩展程序,也没有刷新。看来此订阅有超时。

更新: 代码。

manifest.json中的权限和背景部分

"permissions": [
    "activeTab",
    "webNavigation",
    "downloads",
    "storage",
    "unlimitedStorage"
  ],
"background": {
    "scripts": [
      "background.js"
    ]
  }

background.js的一部分

chrome.webNavigation.onCreatedNavigationTarget.addListener(async (details) => {
    const url = new URL(details.url);
    const params = new URLSearchParams(url.search.substr(1));

    chrome.tabs.remove(details.tabId);
    await startDownload(params);
  }, { url: [{ urlContains: 'localhost/formats' }] });

更新

我已经找到了如何重现此问题的方法。 如果我关闭Chrome并重新打开它,则根本不会添加侦听器。我需要刷新chrome//extensions的扩展名,然后才能使用。重新打开Chrome后,background.js无法运行。

1 个答案:

答案 0 :(得分:1)

好的,谢谢@AloyanDmitry。 在background.js中,我有chrome.runtime.onInstalled.addListener(() => {}) 这意味着扩展程序将在安装后立即开始工作。如果您在重启Chrome后已经安装了扩展程序,它将无法开始工作。