tabbrowser

在早期版本的 Firefox 中,<xul:tabbrowser> 负责显示和管理窗口选项卡的内容。随着浏览器的演变,<xul:tabbrowser> 的职责不断增加。每个 Firefox 窗口都有一个 <xul:tabbrowser>,可以使用 gBrowser 变量访问它。

目前,<xul:tabbrowser> DOM 元素已不再存在,但我们在这里提到它,因为它经常与 gBrowser 互换使用,并且其他文档可能仍然会直接或间接地引用 <xul:tabbrowser>

gBrowser

gBrowser 是在 tabbrowser.js 中定义的一个 JavaScript 对象,它管理选项卡以及切换选项卡、添加选项卡、删除选项卡、了解选项卡切换等底层基础设施。 gBrowser 在浏览器窗口作用域中可用,每个浏览器窗口只有一个 gBrowser

gBrowser 的名称代表什么?

gBrowser 中的 g 代表什么?这是一个旧的 Mozilla 约定,g 代表 global(全局)。这是一种在变量名称内部指示某物是全局作用域的方式。在本例中,它对浏览器窗口是全局的,窗口的每个选项卡都将通过该窗口的 gBrowser 进行管理。

gBrowser 中的 browser 代表什么?browser 是一个知道如何渲染 Web 内容的元素。在其发展历程中的某个时刻,Firefox 没有选项卡。每个窗口都有一个浏览器。该单独的浏览器被称为 gBrowser。新的 gBrowser 变量与旧变量具有相同的接口,但会将调用转发到当前的 selectedBrowser,后者是一个实际的 <xul:browser> 元素。

tabbrowser、browser 和 gBrowser 之间的关系

<xul:browser> 是一个可以加载网页、发出 HTTP 请求并相应做出响应的 XUL 元素。它在概念上类似于 iframe,但包含其他方法并具有更高的权限。在 Firefox 中,每个选项卡都与一个 <xul:browser> 相关联。

历史上,每个 Firefox 窗口都有一个 <xul:tabbrowser>,可以使用 gBrowser 变量访问它。它可以包含多个选项卡,每个选项卡都与一个 <xul:browser> 相关联。

尽管 <xul:tabbrowser> DOM 元素已被删除,但您仍然可以使用全局 gBrowser 与所有浏览器的选项卡进行交互。全局 gBrowser 仍然在名为 tabbrowser.js 的文件中定义,原因与历史相同。