代码之家  ›  专栏  ›  技术社区  ›  thecaveman

firefox插件-如何隐藏选项卡浏览器并获取其内容

  •  0
  • thecaveman  · 技术社区  · 11 年前

    我正在为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);
    

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

    2 回复  |  直到 11 年前
        1
  •  0
  •   muzuiget    11 年前

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

    Addon SDK提供了 page-work 单元这是你想要的吗?

        2
  •  0
  •   Martijn Kooij    11 年前

    如果存储对使用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);