是否可以在MV3后台服务工作者中的条件中设置侦听器,或者侦听器必须位于顶层?
例如
// "service_worker": "background.js"
if (condition) {
chrome.action.onClicked.addListener(handleActionClick);
}
// subsequent to comment by wOxxOm, for example
if (typeof browser !== 'undefined') {
browser.proxy.onRequest.addListener(onRequest, {urls: ['<all_urls>']});
}
最好将行测器放在顶层。否则,存在严重的风险,即SW将不会被该事件唤醒。
你可以将条件移动到处理程序(handleActionClick(中,不是吗?