【发布时间】: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