我有一个带背景页面的扩展程序,默认情况下,这会导致Chrome在关闭所有窗口后保持不变,并将Chrome图标放入系统托盘中。我想避免这种情况 - 我不希望我的扩展程序导致Chrome进程在关闭所有Chrome窗口后仍然存在,我也不想让Chrome出现在系统托盘中。
根据only docs I could find,这表明用户可以在所有扩展中全局设置此选项,但这不是我想要做的。我希望扩展程序不张扬/不引人注目,并且不想更改用户的浏览器行为。有没有人知道如何实现这一目标,同时保留了拥有背景页面的能力?
答案 0 :(得分:3)
<强>更新强>
使用清单版本2,您现在可以运行event pages that are not persistent。事件页面与背景页面非常相似,但仅在扩展名需要时加载。
有关在清单中设置非持久性事件脚本的事件页面doc的示例:
{
"name": "My extension",
...
"background": {
"scripts": ["eventPage.js"],
"persistent": false
},
...
}
以下是关于m igrating your Chrome extension to manifest version 2的教程。
OLD ANSWER
目前,如果您的扩展程序在manifest.json文件中定义了后台,则会在Chrome启动之前运行,并在Chrome的所有窗口关闭后继续。除非用户像你提到的那样改变他们的设置。 Google Chrome的未来版本可能会允许不同的功能,但您(开发人员)目前无法解决此问题。
的摘录让Chrome尽早启动并延迟关闭,以便应用和扩展程序可以延长使用寿命。
如果任何已安装的托管应用,打包应用或扩展程序具有“后台”权限,则只要用户登录其计算机,Chrome就会立即运行(无形) - 在用户启动Chrome之前。 “后台”权限还允许Chrome继续运行(即使在最后一个窗口关闭后),直到用户明确退出Chrome。