【问题标题】:firefox plugin - How to hide a tab browser and getting its contentfirefox plugin - 如何隐藏标签浏览器并获取其内容
【发布时间】:2013-03-24 06:30:17
【问题描述】:

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

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

【问题讨论】:

    标签: javascript firefox-addon xul tabbed-browsing


    【解决方案1】:

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

    Addon-SDK 提供了一个page-work 模块。这是你想要的吗?

    【讨论】:

    • 这很有趣。我不知道它,实际上它做了我真正想要实现的。感谢您提供信息。
    【解决方案2】:

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

    【讨论】:

    • 我之前尝试过,但是在将属性显示设置为无时没有获取内容。只有当它可见时,我才能访问innerHTML。有没有其他方法可以隐藏和获取内容?
    • 更新了示例,你有一个 local 变量“load”,所以它永远不会变成 5。
    • 实际上这里的一个问题是——特定的 url 只有在调用回调函数 5 次后才会完全加载,因此我设置了 if 条件,否则我将无法获得正确的数据。它现在以某种方式工作。谢谢@martijn 感谢它。
    猜你喜欢
    • 2021-03-23
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 2019-10-05
    • 2013-07-14
    相关资源
    最近更新 更多