>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Проблема с parseFromString http://forum.mozilla-russia.org/viewtopic.php?id=6390 |
olegs2 > 23-11-2005 11:03:22 |
Может кто-нибудь встречался с неправильной обработкой <listbox> ? <?xml version="1.0"?> <window <script type="text/javascript; e4x=1"> <listbox id="theList"> <box> </window> Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8) |
Anton > 23-11-2005 15:06:51 |
olegs2, в чём выражается "неправильность" обработки ? Расскажите, дайте скриншот и т. д. А вообще, в вашем коде по-меньшей мере 4 ошибки: 1. Выделить код Код:... var fragment1 = <box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <button label="fragment1"/> </box>; ... Впервые вижу такую конструкцию (может, я чего-то не знаю ?). По-моему, правильно будет так: Выделить код Код:... var fragment1 = '<box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">\ <button label="fragment1"/>\ </box>'; ... * Теперь переменная fragment1 определена и имеет тип string. 2. Ну нет у string метода toXMLString() (я опять чего-то не знаю ?). С учётом моей поправки (1), я бы записал этот участок кода так: 3, 4. Аналогично 1, 2 - но в отношении переменной fragment2. |
olegs2 > 23-11-2005 15:46:30 |
Anton, спасибо за развернутый ответ! |
Anton > 23-11-2005 16:28:27 |
olegs2 пишет
Ага, вот чего я не знаю.
Ну, а я обнаружил решение Нужны ещё теги <listrows>. Вот в этот Выделить код Код:... <listbox id="theList2"> <listitem label="Ruby"/> <listitem label="Emerald"/> <listitem label="Sapphire"/> <listitem label="Diamond"/> </listbox> ... их и добавляем: Выделить код Код:... <listbox id="theList2"><listrows> <listitem label="Ruby"/> <listitem label="Emerald"/> <listitem label="Sapphire"/> <listitem label="Diamond"/></listrows> </listbox> ... |
olegs2 > 24-11-2005 13:54:48 |
Добавление <listrows> решает проблему визуализации, но в результате получается что-то похожее на listbox, но не listbox. Все-таки мешали узлы #text. Вылечилось добавлением оператора Выделить код Код:<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" style="overflow: auto;" align="left" valign="top" > <script type="text/javascript; e4x=1"> <![CDATA[ function testParser() { //XML.ignoreWhitespace = true; XML.prettyPrinting = false; var b1 = document.getElementById('b1'); var b2 = document.getElementById('b2'); var fragment1 = <box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <button label="fragment1"/> </box>; b1.appendChild((new DOMParser()).parseFromString(fragment1.toXMLString(), 'text/xml').documentElement); var fragment2 = <box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <listbox rows="3"> <listcols> <listcol style="width: 10em;"/> <listcol style="width: 10em;"/> <listcol style="width: 10em;"/> </listcols> <listhead> <listheader label="aaa"/> <listheader label="bbb"/> <listheader label="ccc"/> </listhead> <listitem value="1"> <listcell label="aaa1"/> <listcell label="bbb1"/> <listcell label="ccc1"/> </listitem> <listitem value="2"> <listcell label="aaa2"/> <listcell label="bbb2"/> <listcell label="ccc2"/> </listitem> <listitem value="3"> <listcell label="aaa3"/> <listcell label="bbb3"/> <listcell label="ccc3"/> </listitem> <listitem value="4"> <listcell label="aaa4"/> <listcell label="bbb4"/> <listcell label="ccc4"/> </listitem> </listbox> </box>; b2.appendChild((new DOMParser()).parseFromString(fragment2.toXMLString(), 'text/xml').documentElement); } ]]> </script> <hbox> </hbox> <box> <button label="testParser" oncommand="testParser();"/> </box> <hbox> <box id="b1"/> <box id="b2"/> </hbox> </window> :::: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8) Gecko/20051107 Firefox/1.5 |
Anton > 24-11-2005 18:01:25 |
olegs2 пишет
olegs2, можно подробней ? |
olegs2 > 25-11-2005 08:52:59 |
Здравствуйте, Anton. З.Ы. |
Anton > 25-11-2005 16:36:34 |
olegs2 пишет
Не откажусь. Спасибо. |