在Chrome扩展程序中,为什么要使用HTML背景页?

Jam*_*ton 4 google-chrome-extension

我了解Chrome扩展程序的后台页面永远不会显示.对我来说,后台页面应该只包含脚本是有道理的.在什么情况下需要HTML标记?

https://developer.chrome.com/extensions/background_pages中有一个带有HTML背景页面的示例,但我无法让它工作(可能是因为我不确定它应该做什么).

是否有任何简单的Chrome扩展程序示例,演示HTML标记在后台页面中的用途?

Xan*_*Xan 8

历史原因

从技术上讲,背景页面是一个完整的单独文档 - 除了它没有在实际的选项卡中呈现.

为简单起见,或许,扩展开始时需要通过background_pagemanifest属性为后台页面提供完整的HTML页面.这是唯一的形式.

但是,正如您的问题所证明的那样,大多数情况下,除了保存脚本之外,还不清楚页面实际上可以用于什么.这使整个事情只是一块样板.

这就是为什么当Chrome "manifest_version": 2 在2012年推出作为扩展的重大改进时,他们添加了另一种格式background.scripts阵列.这会将样板卸载到Chrome,然后Chrome将为您创建一个背景页面文档,简洁地称之为_generated_background_page.html.

今天,这是一种首选方法,但background.page仍然可用.

实际原因

综上所述,您有时仍希望在背景页面的文档中包含实际元素.

  • <script>用于动态地将脚本添加到后台页面(只要它们符合扩展CSP).
    除此之外,由于您不能通过background.scripts数组包含外部脚本,因此您需要<script>为此目的为白名单创建元素.
  • <canvas>用于准备在其他地方使用的图像数据,例如在浏览器操作图标中.
  • <audio> 用于产生声音.
  • <textarea>for (old-school)使用剪贴板(实际上不这样做).
  • <iframe> 用于将外部页面嵌入到后台页面中,这有时可以帮助提取动态数据.
  • ..可能更多.

有争议的是哪个样板是"更好的":提前创建元素作为文档,或document.createElement根据需要使用和它的朋友.

在任何情况下,背景页面始终是页面,无论是由您提供还是由Chrome自动生成.您可以使用所需的所有DOM函数.


归档时间:

查看次数:

1436 次

最近记录:

9 年,6 月 前