2012-03-12 140 views
0

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

我用这个代码:

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

它会提醒值,文档返回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); 

当我使用此代码,没有警报显示。

回答

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

document之前简单地使用content,例如:

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



可能是你要的achieve这个:

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