【问题标题】:Chrome Extension onCreatedNavigationTarget Listener stops workingChrome 扩展 onCreatedNavigationTarget 监听器停止工作
【发布时间】:2019-12-23 21:56:54
【问题描述】:

我将带有chrome.webNavigation.onCreatedNavigationTarget.addListener 的侦听器添加到background.js,并在manifest.json 中添加了webNavigation 的权限,当我测试它时它运行良好。

我跳过了几天的工作并尝试在之后继续,但侦听器根本不运行回调函数。如果我从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 未运行。

【问题讨论】:

  • 没有超时。假设这不是浏览器中的错误,则您的代码中可能有错误,因此请将其添加到问题中。并显示您 manifest.json 的“背景”部分。
  • @wOxxOm 添加:)
  • 尝试从函数定义中删除async
  • @AloyanDmitry 我试过了。检查我在问题中的最后更新。
  • @AndrewZaikin 你是如何关闭 Chrome 的?完整的杀戮过程?在 MacOs 中,Chrome 通过“红色按钮”关闭后继续工作

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-11-30
    • 2016-04-29
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多