我有一个带有背景页面的扩展程序,默认情况下,这会导致 Chrome 在您关闭所有窗口后持续存在,并将 Chrome 图标放在系统托盘中。我想避免这种情况——我不希望我的扩展程序在关闭所有 Chrome 窗口后导致 Chrome 进程持续存在,我也不希望 Chrome 出现在系统托盘中。
根据我能找到的唯一文档,这表明用户可以在所有扩展中全局设置此选项,但这不是我想要做的。我希望扩展不张扬/不引人注目,并且不想改变用户的浏览器行为。有谁知道如何在保留拥有背景页面的能力的同时做到这一点?
我有一个带有背景页面的扩展程序,默认情况下,这会导致 Chrome 在您关闭所有窗口后持续存在,并将 Chrome 图标放在系统托盘中。我想避免这种情况——我不希望我的扩展程序在关闭所有 Chrome 窗口后导致 Chrome 进程持续存在,我也不希望 Chrome 出现在系统托盘中。
根据我能找到的唯一文档,这表明用户可以在所有扩展中全局设置此选项,但这不是我想要做的。我希望扩展不张扬/不引人注目,并且不想改变用户的浏览器行为。有谁知道如何在保留拥有背景页面的能力的同时做到这一点?
更新
使用清单版本 2,您现在可以运行非持久的事件页面。事件页面与背景页面非常相似,但仅在扩展需要时加载。
事件页面文档中关于在清单中设置非持久事件脚本的示例:
{
"name": "My extension",
...
"background": {
"scripts": ["eventPage.js"],
"persistent": false
},
...
}
这是关于将 Chrome 扩展程序迁移到清单版本 2的教程。
旧答案
目前,如果您的扩展在 manifest.json 文件中定义了背景,它将在 Chrome 启动之前运行,并在 Chrome 的所有窗口关闭后继续运行。除非用户像您提到的那样更改他们的设置。未来版本的 Google Chrome 可能会支持不同的功能,但作为开发者的您目前无法解决此问题。
背景清单文档的摘录
让 Chrome 早起晚关,让应用程序和扩展程序的寿命更长。
当任何已安装的托管应用程序、打包应用程序或扩展程序具有“后台”权限时,Chrome 会在用户登录其计算机后立即运行(不可见)——在用户启动 Chrome 之前。“后台”权限还使 Chrome 继续运行(即使在其最后一个窗口关闭后),直到用户明确退出 Chrome。