2017-02-26 84 views
0

我已阅读文档,但无法看到背景页面的目的是什么。我不是在谈论背景脚本(我知道他们是为了什么),我指的是背景HTML页面。背景页面的用途是什么?

后台HTML页面似乎是扩展中的“不可见”页面,那么为什么我们需要在HTML中标记一个页面,如果它不会被看到或使用? 谢谢。

回答

0

Chrome文档似乎在背景页面上有更多信息和示例。

从铬的解释:

Background Pages
背景页将被扩展系统 包括每个脚本中的属性中列出的文件的生成。

如果您需要在背景页面中指定HTML,则可以使用page属性代替 。

从MDN的解释:

background
如果只指定“脚本”,然后一个空白页将用于 创建的脚本。如果你需要运行

。页面中的一些特定内容,您可以使用“页面”选项定义您的 自己的页面。

如果您使用此属性,您仍然可以使用“脚本”指定后台脚本 (如果需要),但也可以在页面中包含自己的脚本 ,就像在普通网页中一样。

更新

Understanding Google Chrome Extensions
后台网页

后台网页有两种形式:有标记或无标记。 后台页面是我们应用程序的控制器,并且在我们的应用程序一直存在的时候存在 。只要后台页面已注册了一个 事件侦听器,它们就可以在任何时间被任何选项卡使用 。您可以转到Chrome的设置 部分中的扩展部分,您会看到一个页面。

背景页面通常只有内部的JavaScript (这可能是markable)或iframe帮助引导 一些应用程序的evals。如果您将背景页面指定为 html,则它们将以这种方式呈现,但如果您只是在清单文件的“背景”选项中指定脚本 ,Google Chrome将为您生成一个 。目前,我只是使用其他 的一个选项来组织我的脚本。

如何使用它在manifest文件中,你要么指定“背景”选项里面的页面指令下一个.html页面,或 下的脚本相同的选项指令。您可以将其设置为 阵列。

当使用它我发现在3个方案中很有背景的网页:

  • 当多个标签消耗你的应用程序,你需要有交互作用的通用网关。
  • 当您需要在内容脚本和页面动作/浏览器动作之间出于任何原因进行通信时。
  • 当您需要在后台进行的特定任务时。
+0

谢谢。目前还不清楚为什么我们需要一个实际的背景HTML页面。背景*脚本的想法是有道理的(保持长期状态等),但我仍然看不到背景HTML页面的用途。任何人都可以解释为什么我们可能需要一个背景HTML页面,或给(或指向)我们如何使用它的例子? – user3666516

+0

我在帖子中添加了更多信息。我希望这有助于:) – erosman

+0

任何人都可以指向实际使用背景HTML页面的WebExtension吗?我用背景HTML页面尝试的所有内容都不起作用。 (我已经能够使用后台*脚本*运行其他测试WebExtensions。)我浏览了所有示例WebExtensions,网址为https://github.com/mdn/webextensions-examples,但它们都没有使用后台HTML页面(即没有人将manifest.json中的“background”键的“page”属性设置为任何内容)。 – user3666516

0

后台网页进口许可证在同一背景下的JavaScript文件(要求或进口语言的关键字尚未在Firefox Web扩展启用)。

想象一个名为main.js的JavaScript文件,它需要调用另一个名为foo.js的JavaScript文件中的函数。

如何从main.js中的foo.js中导入函数而无需导入或需要函数? (免责声明:一种方法是拥有一个包含所需的所有脚本的后台页面)。

+0

“background”manifest.json键的“scripts”部分不包含WebExtension中的后台脚本吗?为什么需要HTML页面来包含所需的脚本? (https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/background) – user3666516