собстно сабж, нужен полный текст, то есть всё что есть на странице:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
.....
</html>

нашёл у документа тока documentElement.innerHTML, но это соджержание только тега html
подскажите плз

уточню, мне нужно в xpcom-компоненте получить полный текст текущей в FireFox страницы, то есть либо получить текст в javascript и передать его в xpcom как строку, либо передать указатель на интерфейс, через который можно получить тот же текст(сейчас разбираюсь с nsIDOMHTMLDocument, но чего-то пока там не нахожу того чего нужно).

Выделить код

Код:

var cont = window. getBrowser (). contentDocument;
var ser = new XMLSerializer ();
var st1 = ser. serializeToString (cont. firstChild);
var st2 = ser. serializeToString (cont. firstChild. nextSibling);
var source = st1 + st2;

спасибо большое!
мне наверное тогда будет проще сделать вот так:

Выделить код

Код:

var cont = window.getBrowser().contentDocument;
var ser = new XMLSerializer();
var st = ser.serializeToString(cont);

чтобы получить весь сорс?
а есть у XMLSerializer метод deserialize, чтобы можно было сделать наподобии

Выделить код

Код:

ser.deserializeFromString(st, cont);

?

cesspit пишет

...
мне наверное тогда будет проще сделать вот так:
...

Да, так проще.

...
а есть у XMLSerializer метод deserialize...
...

Нет. У него всего два метода (http://xulplanet.com/references/objref/ … lizer.html).

Есть объект DOMParser (http://xulplanet.com/references/objref/DOMParser.html), но он делает только xml и xhtml.
Здесь: http://www.xulplanet.com/tutorials/mozsdk/xmlparse.php рекомендуют использовать свойство innerHTML.

хммм...
а не подскажите, если менять содержание загруженной страницы из xpcom, какой интерфейс нужно для этого передать в компонент? Я сейчас мучаюсь с nsIDOMHTMLDocument. Всё что мне нужно, это получить то, что лежить в документе между <html> и </html> подправить и положить обратно подправленное. Ссылку на <html> насколько я понял я могу получить через GetDocumentElement(nsIDOMElement*), тока не могу понять как у nsIDOMElement получить innerHTML, у него и свойства такого нету. Есть методы GetNodeValue/SetNodeValue но первый метод по отношению к элементу полученному с помощью GetDocumentElement ничего не возвращает, а второй ничего не устанавливает. Может я не тот интерфейс для такой задачи использую?

да, по ходу разобрался, что innerHTML через XPCOM-интерфейсы не получить, ибо не стандарт.
заинтересовал такой вот момент:
насколько я понял на xpidl можно описать интерфейс и метод, принимающий указатель на такой интерфейс в качестве входного параметра, и из js-кода вызвать этот метод XPCOM-компонента, передав ему объект javascript, реализующий соответствующий интерфейс. Не понял только как на js описать объект реализующий интерфейс. Не подскажите?

cesspit пишет

заинтересовал такой вот момент:
насколько я понял на xpidl можно описать интерфейс и метод, принимающий указатель на такой интерфейс в качестве входного параметра, и из js-кода вызвать этот метод XPCOM-компонента, передав ему объект javascript, реализующий соответствующий интерфейс. Не понял только как на js описать объект реализующий интерфейс. Не подскажите?

нашёл
http://groups.google.ru/group/netscape. … rt=1&num=3

а можно из js сохранить в файл код текущей страницы или узнать имя закешированного файла? XMLSerializer заюзать не получилось как и innerHTML т.к. нужно сохранить html со всеми переносами строк, а при сериализации они пропадают.

cesspit пишет

а можно из js сохранить в файл код текущей страницы...

можно, уже обсуждалось

... или узнать имя закешированного файла?...

тоже можно, но не знаю как