我正在创建一个Firefox扩展程序,用于向某些网页添加某些功能。我需要检查一些元素是否存在并突出显示它们,所以我使用xpath来检查和定位它们。我知道通过标签和端口操纵标签和内容,但我真的需要使用低级API并且没有端口。问题是,我不知道如何获得当前打开的选项卡窗口(我也可以打开选项卡,但我没有得到窗口)。我已经尝试打开一个标签:
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();
}})
我有很多方法可以检索不同类型的窗口,但是我没有找到关于差异的解释。例如。 Chroe窗口,XUL窗口,NSI窗口,基本窗口......我只需要当前网页的文档窗口。
欢迎任何澄清。 提前谢谢,
答案 0 :(得分:0)
我只需要听另一个标签事件:
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();
}