我已阅读过文档,但无法查看背景页面的用途。我不是在谈论背景脚本(我知道它们的用途),我指的是背景HTML页面。
背景HTML页面似乎是"隐形"扩展中的页面,那么为什么我们需要用HTML标记页面,如果它不会被看到或使用? 感谢。
答案 0 :(得分:0)
Chrome文档似乎在背景页面上有更多信息和示例。
Chrome的解释:
Background Pages
扩展系统将生成一个后台页面 包括scripts属性中列出的每个文件。如果您需要在后台页面中指定HTML,则可以执行此操作 改为使用页面属性。
MDN的解释:
background
如果仅指定“脚本”,则将为其创建一个空页面 你的脚本要运行。如果您需要页面中的某些特定内容,则可以定义您的 使用“页面”选项自己的页面。
如果使用此属性,仍可以指定后台脚本 如果需要,可以使用“脚本”,但也可以包含自己的脚本 从页面中,就像在普通网页中一样。
更新
Understanding Google Chrome Extensions
背景页后台页面有两种形式:带标记或没有标记。 背景页面是我们应用程序的控制器并且存在 我们的应用程序一直存在。他们可以被消费 任何时候任何标签,只要背景页面已经注册了 事件监听器。您可以转到设置中的“扩展”部分 Chrome的一部分,你会看到一个生活在那里的页面。
后台页面通常只有javascript (也可能是无标记的)或帮助引导的iframe 一些申请的遗嘱。如果您将背景页面指定为 html,它们将被渲染为,但如果你只是指定脚本 在清单文件的“后台”选项中,谷歌Chrome将会 为你生成一个。目前,我只使用一个选项而不是另一个 组织我的脚本。
如何使用在清单文件中,您可以在“background”选项中的page指令下指定.html页面,或者在 相同选项中的scripts指令。您可以将其设置为 阵列。
何时使用我发现背景页在3种情况下很有用:
- 当多个标签使用您的应用程序时,您需要有一个公共网关进行交互。
- 当您因任何原因需要在内容脚本与页面操作/浏览器操作之间进行通信时。
- 当您需要在后台制作特定任务时。
答案 1 :(得分:0)
后台页面允许在同一上下文中导入javascript文件(Firefox Web Extensions中尚未启用require或import语言关键字)。
想象一个名为main.js的javascript文件需要在名为foo.js的其他javascript文件中调用函数。
如何在没有import或require函数的情况下从main.js中的foo.js导入函数? (免责声明:一种方法是拥有一个包含您需要的所有必需脚本的后台页面。)
答案 2 :(得分:0)
旧问题,但是background.scripts
只是background.pages
的包装。指定"scripts": ["script1.js", "script2.js"]
与指定"page": "background.html"
完全相同,其中background.html的代码如下:
<!DOCTYPE html>
<html>
<head></head>
<body>
<script src="script1.js"></script>
<script src="script2.js"></script>
</body>
</html>
在调试器中打开您的扩展名以查看HTML页面。即使您指定了background.scripts
,您的脚本仍可以更改DOM。该页面本身主要用于允许访问全局变量。