JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – tabbrowser,浏览器,gBrowser有什么区别?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在开发Firefox扩展时,
我一直在看这些术语相当一段时间,我觉得他们真的很混乱.

看看this的链接.他们以多种方式使用术语浏览器,尽管解释留下了无人值守的上下文的真正差异.

我想知道是否有人可以提供整体的自上而下的图片.

喜欢如果有n个不同的Firefox窗口(在OS窗口的意义上)打开,我如何访问每个窗口的XUL内容(如地址栏,滚动条等),HTML内容,以及这些术语如何进入图片那里?

编辑:
在阅读Kashif的令人敬畏的答案并查看DOM检查员后,我留下了这些问题:

> tabbrowser有一个名为contentDocument的属性.它指的是它下面的HTML文档.但是tabbrowser可以有多个文档(在每个选项卡中).在tabbrowser下具有contentDocument属性是否有意义?浏览器不应该存在? (浏览器在tabbrowser下,只包含一个HTML文档对象).
>窗口对象来到哪里?不是XUL元素,而是所有Web开发者使用的Chrome元素.直接包含HTML文档对象的那个对象.
>要访问选项卡元素(表示Firefox中打开的选项卡的UI矩形)及其上下文菜单,必须使用browser.xul中存在的文档?他们不会来到tabbrowser吗?这是我从DOM检查员可以看到的.

编辑:Kashif回答了所有这些.

解决方法

浏览器

浏览器是一个通用术语,意味着可以用于浏览互联网的软件Firefox,Chrome,Opera等

巧合的是,<浏览器>也是XUL中的一个元素.它是一个可以加载网页,发出http请求并作出相应响应的组件.在Firefox中,每个标签都与一个<浏览器>相关联.

< tabbrowser>和gBrowser

< tabbrowser>也是XUL中的一个元素.它可以包含多个选项卡,每个选项卡与一个<浏览器>相关联.所以在firefox窗口中,如果你排除了工具栏,标题栏,侧边栏和附加组件,剩下的就是大概< tabbrowser>

如果您的扩展名为chrome.manifest中包含browser.xul的重叠式广告,并且包含一个脚本,则覆盖图将应用于每个firefox窗口,并且脚本将独立地为每个firefox窗口运行.该脚本将访问由browser.xul定义和初始化的变量.一个这样的变量是指向< tabbrowser>的gBrowser.在当前的Firefox(OS)窗口中.所以每个Firefox窗口都将有一个< tabbrowser>可以使用重叠脚本中的gBrowser变量进行访问.

如果你看看documentation of <tabbrowser>,这是非常有用的例如添加新标签页,查找选定的浏览器等

Firefox窗口

一个firefox窗口实际上是基于browser.xul.这个文件包含你在firefox窗口中看到的所有元素. (例如,工具栏,urlbar,选项卡式界面等).这些元素之一是< tabbrowser> id = content的元素. < tabbrowser>元素@R_562_11262@个或更多个面板,每个面板都包含< browser&gt ;.所以如果firefox窗口中有3个标签打开,那么将有3个<浏览器>元素.

访问窗口元素:

当从xul overlay中包含一个javascript文件时,它被称为在“chrome context”中执行.在chrome上下文中,window指的是顶级的firefox窗口,而document是指xul文件(即browser.xul)

这样的脚本可以访问XUL文档的每个元素.例如,您可以使用document.getElementById(“urlbar-container”)访问当前窗口的urlbar.您应该熟悉DOM Inspector,可以帮助您找到元素的id和了解XUL文档.

在tabbbrowser中的contentDocument

看看code of tabbrowser.xul

<property name="contentDocument"
   onget="return this.mCurrentBrowser.contentDocument;"
   readonly="true"/>

我希望这是自我解释:).这可能没有意义,但在代码中非常方便.如果这个属性被命名为activeContentDocument,那么这个名字就更容易理解了.

@H_108_3@mXR非常方便地找到这些问题的答案.

窗口对象:

<browser> code

<property name="contentWindow"
  readonly="true"
  onget="return this._contentWindow || (this._contentWindow = this.docSHell.QueryInterface(Components.interfaces.nsIInterfacerequestor).geTinterface(Components.interfaces.nsIDOMWindow));"/>

但我希望别人有更好的解释.

tabbrowser和选项卡

< tabbrowser>和< tabs>一起工作. < tabs>元素是指包含打开选项卡的矩形. Dom督察透露:

<tabbrowser id="content" tabcontainer="tabbrowser-tabs" ...

<tabs id="tabbrowser-tabs" tabbrowser="content" ...

所以两者都依赖于彼此,尽管这些都是两个不同的XUL元素.

大佬总结

以上是大佬教程为你收集整理的javascript – tabbrowser,浏览器,gBrowser有什么区别?全部内容,希望文章能够帮你解决javascript – tabbrowser,浏览器,gBrowser有什么区别?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。