Страницы: 1
В общем, как известно в мозилле пока(?) не работает прозрачная поддержка этих технологий, тобишь такой код:
выдаёт невразумительную ошибку.
ну да ладно, любой элемент можно сериализовать и полученную строку отдать в XML конструктор. но проблема с обратным преобразованием.
в HTML есть свойство innerHTML, которое бы тут могло помочь, но в XUL такого нет пробовал натравливать DOMParser, но справедливо получал ошибку о том, что нельзя элемент из одного документа перенести в другой.
в общем, есть ещё какие-нибудь решения, а то от E4X отказываться очень не хочется?..
!
Отсутствует
пробовал натравливать DOMParser, но справедливо получал ошибку о том, что нельзя элемент из одного документа перенести в другой.
Вот этим кодом я перенес кнопку из открытого в браузере xul-документа в интерфейс самого браузера.
var x = getBrowser (). contentDocument. getElementsByTagName ("button") [0]; var ser = new XMLSerializer (); var str = ser. serializeToString (x); default xml namespace = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; var button = XML (str); button. description = <description>new button</description>; button = new DOMParser (). parseFromString (button, "text/xml"); var gobutton = document. getElementById ("go-button"); gobutton. parentNode. appendChild (button. documentElement);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
ну, фактически загруженный xul-документ находится в том же доме, что и весь интерфейс браузера, хотя, странно, что после преобразования в строку и обратно он сохранил эту информацию...
в общем, решение я нашёл - методы importNode или adoptNode позволяют вставлять узлы из других документов.
только вот после парсинга узлы перемежаются с пустыми текстовыми узлами... даже если узлы писать без пробелов... xml.prettyPrinting=false помогло
Отредактировано Dark-Demon (09-07-2007 00:21:32)
!
Отсутствует
Lynn, ну да, баги почитал, поплакал... (T_T)
жаль, что в 1.9 нас не ожидает светлое е4х будущее..
!
Отсутствует
Страницы: 1