我将具有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无法运行。
答案 0 :(得分:1)
好的,谢谢@AloyanDmitry。
在background.js中,我有chrome.runtime.onInstalled.addListener(() => {})
这意味着扩展程序将在安装后立即开始工作。如果您在重启Chrome后已经安装了扩展程序,它将无法开始工作。