使用 Firefox SDK 的低级别 api 获取当前页面的 window

Getting the current page's window with the low level api of the Firefox SDK

我正在创建一个 Firefox 扩展,用于向某些网页添加一些功能。我需要检查某些元素是否存在并突出显示它们,因此我使用 xpath 来检查和定位它们。我知道如何通过选项卡和端口操作选项卡和内容,但我确实需要使用低级别 API 并且在没有端口的情况下进行操作。问题是,我不知道如何获取当前打开的选项卡 window(我也可以打开选项卡,但我没有获取 window)。我已经尝试打开一个选项卡并:

tabs.open({
            url: url,
            onOpen: function onOpen(tab) {

                // get the XUL tab that corresponds to this high-level tab
                var lowLevelTab = viewFor(tab);
                var browser = tab_utils.getBrowserForTab(lowLevelTab);
                var doc = browser.contentDocument;
                console.log(doc); //THIS IS AN EMPTY DOC

                // get the most recent window. This give me a XUL window, and I can't sucessfully execute eval on that...
                var win = utils.getMostRecentBrowserWindow();
}})

我看到了很多检索不同类型 windows 的方法,但我没有找到关于差异的解释。例如。 Chroe window, XUL window, NSI window, base window...我只需要当前网页的文档window.

欢迎任何澄清。 提前致谢,

我只需要监听另一个选项卡事件:

onReady: function onOpen(tab) {

                var content = utils.getMostRecentBrowserWindow().content;
                var domInstances = content.document.evaluate(me.getTemplateXpath(), content.document, null, 4, null);
                var res = domInstances.iterateNext();                   
                while (res) {
                    console.log(res);
                    res.style["background-color"] = "orange";
                    res = domInstances.iterateNext();
                }
                callback();
}