使用后台脚本而不是背景页面的Chrome扩展程序?

时间:2012-01-16 15:01:20

标签: google-chrome-extension

我最近开始学习Chrome扩展程序,并且正在查看示例代码,以了解所有不同部分如何组合在一起。我看到扩展背后的逻辑主要是在后台页面中处理,但是在查看下面的示例代码时,我注意到了一些特殊的东西。

{
  "name": "Notification Demo",
  "version": "1",
  "description":
     "Shows off desktop notifications, which are \"toast\" windows that pop up on the desktop.",
  "icons": {"16": "16.png", "48": "48.png", "128": "128.png"},
  "permissions": ["tabs", "notifications"],
  "options_page": "options.html",
  "background": { "scripts": ["background.js"] },
  "content_security_policy": "script-src 'self'; img-src 'self'"
}

这里没有“background_page”,而是“background”元素。我知道“权限”中有一个设置允许chrome在后台运行,即使它没有打开但是这看起来有些不同。似乎可以使用后台脚本而不是页面,但是当我尝试搜索有关此内容的信息时,我什么也没想到。有没有人见过或使用过这个,你能简单介绍一下在后台页面上使用后台脚本的优势吗?

2 个答案:

答案 0 :(得分:4)

这是security工作的一部分,不允许执行内联JavaScript。不要使用只加载background_page的{​​{1}},而是使用单独的文件来直接加载JS。由于后台代码没有UI,因此实际上不需要HTML。这看起来是recent work,尚未记录在案。

答案 1 :(得分:2)

您可以在Google的browserAction函数示例代码中看到此实现的实际效果:

http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/browserAction/

特别查看make_bg_red。