Javascript firefox插件-如何隐藏标签浏览器并获取其内容

Javascript firefox插件-如何隐藏标签浏览器并获取其内容,javascript,firefox-addon,xul,tabbed-browsing,Javascript,Firefox Addon,Xul,Tabbed Browsing,我正在为firefox开发一个插件。在其中,我必须打开一个隐藏的选项卡,通过javascript访问其内容,然后关闭它 以下是我用于访问选项卡内容的代码: var newTabBrowser = gBrowser.getBrowserForTab(gBrowser.addTab("www.kayak.com/flights#/BOM-ORL/2013-05-14/2013-06-19")); var contentdata = ""; newTabBrowser.addEventListener

我正在为firefox开发一个插件。在其中,我必须打开一个隐藏的选项卡,通过javascript访问其内容,然后关闭它

以下是我用于访问选项卡内容的代码:

var newTabBrowser = gBrowser.getBrowserForTab(gBrowser.addTab("www.kayak.com/flights#/BOM-ORL/2013-05-14/2013-06-19"));
var contentdata = "";
newTabBrowser.addEventListener("load", function () {
    contentdata = contentdata + newTabBrowser.contentDocument.body.innerHTML;
    load = load + 1;
    if(load == 5) {
        var DOMPars = new DOMParser();
        var dom = DOMPars.parseFromString(contentdata, "text/html");
        var priceNode = dom.getElementById('low_price');
    }
}, true);

如何在浏览器中隐藏此选项卡

如果存储对使用addTab打开的选项卡的引用,则可以使用css或其他可用方法隐藏该选项卡。 例如:

var newTab = gBrowser.addTab("www.kayak.com/flights#/BOM-ORL/2013-05-14/2013-06-19");
newTab.setAttribute("style", "display: none");

var newTabBrowser = gBrowser.getBrowserForTab(newTab);
newTabBrowser.loadCount = 0;
var contentdata = "";
newTabBrowser.addEventListener("load", function () {
    contentdata = contentdata + newTabBrowser.contentDocument.body.innerHTML;
    this.loadCount = this.loadCount + 1;
    if(this.loadCount == 5) {
        var DOMPars = new DOMParser();
        var dom = DOMPars.parseFromString(contentdata, "text/html");
        var priceNode = dom.getElementById('low_price');
    }
}, true);

看起来您只需要创建一个永久的、不可见的页面并访问其DOM


插件SDK提供了一个模块。按您的意愿执行此操作?

我之前尝试过此操作,但在将“属性显示”设置为“无”时未获取内容。我只能在innerHTML可见时访问它。是否有其他方法隐藏和获取内容?更新了示例,您有一个局部变量“load”,所以它从来没有变为5。实际上,这里的一个问题是-特定url只有在调用回调函数5次后才能完全加载,因此我设置了if条件,否则我将无法获取正确的数据。它现在不知怎么起作用了。谢谢@martijn谢谢。这很有趣。我没有意识到,实际上它实现了我真正想要实现的功能。谢谢你提供的信息。