Firefox扩展中脚本的上下文

时间:2012-11-21 03:40:29

标签: javascript firefox-addon xul

我有一些与Firefox扩展中的上下文相关的查询。

  1. 当我们从overlay xul加载脚本时,我们可以访问窗口/文档吗?如果是,我如何从此处访问网页内容?
  2. 使用@mozilla.org/moz/jssubscript-loader;1脚本加载器加载的xul,popup和脚本加载脚本的生命周期是什么时候?
  3. 从非阻止弹出窗口访问网页内容的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

  

当我们从overlay xul加载脚本时,我们是否可以访问窗口/文档?如果是,我如何从中访问网页内容?

叠加层通常适用于browser.xul - 主浏览器窗口。他们加载的任何脚本都会在浏览器窗口的上下文中加载,这是全局windowdocument变量所引用的内容。您可以通过gBrowser.contentWindowgBrowser.contentDocument访问当前选定的浏览器标签(gBrowser是对<tabbrowser> element的引用)。

  

使用@mozilla.org/moz/jssubscript-loader;1脚本加载器加载的xul,popup和脚本加载的脚本的生命周期是什么时候?

脚本加载器将脚本加载到第loadSubScript()的第二个参数给出的上下文中。如果省略该参数,则它将脚本加载到调用者的上下文中。脚本将保持至少只要上下文仍然存在 - 如果有任何外部引用(通常不是一个好主意),则会更长。

  

从非阻止弹出窗口访问网页内容的最佳方法是什么?

这很大程度上取决于你所认为的“弹出窗口”。一个XUL对话框?一个XUL <panel>?在新的浏览器窗口中打开的网页?