Как получить контент страницы из XUL? - PullRequest
0 голосов
/ 12 марта 2012

Я не могу получить текущий контент страницы HTML.когда я пытаюсь получить доступ из скрипта в элементе XUL.нет текущего открытого URL-адреса.

Я использую этот код:

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 ]

1 голос
/ 13 марта 2012

просто используйте content перед document, например:

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



Вы можете achieve это:

alert(content.document.getElementsByTagName("html")[0].innerHTML);
1 голос
/ 12 марта 2012
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);
...