Chrome扩展:关闭Chrome后关闭背景页面

7
我有一个带有背景页面的扩展程序。默认情况下,这会导致Chrome在关闭所有窗口后持久存在,并将Chrome图标放入系统托盘中。我想避免这种情况 - 我不希望我的扩展程序导致Chrome进程在关闭所有Chrome窗口后持久存在,也不想让Chrome出现在系统托盘中。
根据我找到的唯一的文档,用户可以在全局范围内设置此选项,但这不是我想做的。我希望扩展程序不显眼/不引人注目,并且不想改变用户的浏览器行为。有人知道如何在保留背景页面的能力的同时实现这一点吗?

1
这类似于http://stackoverflow.com/questions/10151732/how-can-a-google-chrome-extension-exit-its-own-background-process,但与立即关闭后台页面不同,我希望在所有选项卡关闭时关闭它,并且我也不想要系统托盘图标。 - Mala
你可以使用事件页代替后台页。这是新的首选方法,因为它不需要你的代码一直运行,只有在需要时才会运行。https://developer.chrome.com/dev/extensions/event_pages.html - Jason Hall
事件页面看起来真棒!迫不及待想要它们正式发布。 - Mike Grace
1个回答

4

更新

使用清单版本2,您现在可以运行不持久的事件页面。事件页面与后台页面非常相似,但仅在扩展需要时加载。

以下是在清单中设置非持久事件脚本的事件页面文档示例:

{
  "name": "My extension",
  ...
  "background": {
    "scripts": ["eventPage.js"],
    "persistent": false
  },
  ...
}

这是一个关于将你的Chrome扩展迁移到manifest版本2的教程(链接)


旧回答

目前,如果您的扩展在manifest.json文件中定义了背景,它将在启动Chrome之前运行,并在关闭所有Chrome窗口后继续运行。除非用户像您提到的那样更改其设置。可能会有未来版本的Google Chrome允许不同的功能,但是您作为开发人员,现在无法解决此问题。

background manifest docs中摘录:

使Chrome尽早启动并保持运行,以便应用程序和扩展程序可以拥有更长的生命周期。

当安装了任何托管应用程序、打包应用程序或扩展程序时,具有“background”权限,Chrome会在用户登录计算机后立即运行(隐形),而不是在用户启动Chrome之前。 “background”权限还使Chrome继续运行(即使最后一个窗口关闭后)直到用户明确退出Chrome。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接