我最近开始学习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在后台运行,即使它没有打开但是这看起来有些不同。似乎可以使用后台脚本而不是页面,但是当我尝试搜索有关此内容的信息时,我什么也没想到。有没有人见过或使用过这个,你能简单介绍一下在后台页面上使用后台脚本的优势吗?
答案 0 :(得分:4)
这是security工作的一部分,不允许执行内联JavaScript。不要使用只加载background_page
的{{1}},而是使用单独的文件来直接加载JS。由于后台代码没有UI,因此实际上不需要HTML。这看起来是recent work,尚未记录在案。
答案 1 :(得分:2)
您可以在Google的browserAction函数示例代码中看到此实现的实际效果:
特别查看make_bg_red。