我无法获取当前内容页面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);
当我使用此代码时,未显示任何警报。
答案 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);