背景页面的目的是什么?

时间:2017-02-26 12:30:26

标签: firefox-webextensions

我已阅读过文档,但无法查看背景页面的用途。我不是在谈论背景脚本(我知道它们的用途),我指的是背景HTML页面。

背景HTML页面似乎是"隐形"扩展中的页面,那么为什么我们需要用HTML标记页面,如果它不会被看到或使用? 感谢。

3 个答案:

答案 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。该页面本身主要用于允许访问全局变量。