1
jchnxu OP |
2
solobat 2022-12-03 14:17:40 +08:00
同遇这问题,我是通过新标签页打开的时候由 content 向 background 发起一次请求来尝试激活,从而达到基本可用的程度。
|
4
kidlj 2022-12-03 16:03:28 +08:00
background scripts persistent 的目的是什么,是要保存状态或缓存吗?如果是的话,可以把它做成无状态的,把状态写进 local storage ,service worker 启动的时候读取状态。
|
5
jchnxu OP @kidlj 好问题,我是做了一个网页黑名单,符合某些规则的网页就不让打开。所以基本上只要 onActivated & onUpdated 正常 fire 就能满足我的需求。
现在的问题是,如果 service worker inactive 这两函数就不会 fire 了 |
6
kidlj 2022-12-03 16:31:47 +08:00
|
8
solobat 2022-12-03 21:30:48 +08:00
@jchnxu 不是,https://github.com/solobat/iHelpers/blob/master/src/pages/background/index.ts#L202
https://github.com/solobat/iHelpers/blob/master/src/pages/background/index.ts#L218 你看这两行:在 background 通过 chrome.runtime.onMessage 监听来自 content script 的消息,在回调里去做一些初始化的工作 -- 因为新页面打开的时候,我总会让 content script 向 background 发出消息,从而可以让初始化工作被执行。 我遇到的问题场景是,在任一页面里无法保证右键菜单命令的可用性,所以想出这种办法,不是很完美,但勉强可用。不一定满足你的需求。 |