如何从XUL获取内容页面?

时间:2012-03-12 03:39:56

标签: firefox firefox-addon xul

我无法获取当前内容页面html。当我尝试从xul元素中的脚本访问。不是当前打开的网址。

我使用此代码:

alert(document.getElementById("html"));

它会提醒 null 值,文件返回XUL对象,而不是Html对象。 我想解析当前的内容页面,但我不知道该怎么做。

var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
               .getInterface(Components.interfaces.nsIWebNavigation)
               .QueryInterface(Components.interfaces.nsIDocShellTreeItem)
               .rootTreeItem
               .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
               .getInterface(Components.interfaces.nsIDOMWindow);

    alert(mainWindow.getBrowser().selectedBrowser.contentWindow.location.href);
    alert(mainWindow.getBrowser().selectedBrowser.contentWindow.document);

当我使用此代码时,未显示任何警报。

2 个答案:

答案 0 :(得分:1)

var win = Components.classes["@mozilla.org/appshell/window-mediator;1"]
           .getService(Components.interfaces.nsIWindowMediator)
           .getMostRecentWindow("navigator:browser");

win.alert(win.getBrowser().selectedBrowser.contentWindow.location.href);

如果您从window上下文运行此代码,则只需删除第一部分即可:

alert(window.getBrowser().selectedBrowser.contentWindow.location.href);

答案 1 :(得分:1)

只需在content之前使用document,例如:

alert(content.document.getElementById("html"));


你可能想要achieve这个:

alert(content.document.getElementsByTagName("html")[0].innerHTML);