| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Как получить DOM element из строки |
| Автор: Lixil 8.1.2006, 14:35 | ||
| Кто - нибудь занет, как можно создать элемент из строки? Проблема вот в чем: у меня есть таблица, я принимаю кусок html кода через XMLHttpRequest примерно такого содержания.
В виде строки! мне его надо прицепить к таблице через insertBefore. Как это можно сделать? Создавать <tr>, править параметры и втыкать в него <td> через innerHTML не хочется. Принимать XML тоже не получится, там у меня специфика своя |
| Автор: Greendrake 8.1.2006, 14:57 | ||
| loadXML http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/19957329-69cd-456a-876f-7d2b692b0afc.asp Потом, кажется, полученный DOM-элемент придётся клонировать, ибо чужеродные элементы неохотно инсертятся/аппендятся.
А стоит ли эта специфика её использования, если она требует левое ухо чесать правой рукой? XMLHTTPRequest заточен именно под XML, responseText в него добавили как баловство, коим пользуютя не по назначению ИМХО. |
| Автор: Greendrake 8.1.2006, 16:29 | ||||
Вообще-то, loadXML - это не выпендрон ИЕ, а стандартный метод от DOM W3C. И если браузер не поддерживает стандарты w3с, может ну его н.., этот браузер? Иначе где же предел до которого поддерживать кроссбраузерность? Почему бы под IE и Нетскейп 3-х версий не точить? |
| Автор: Lixil 8.1.2006, 16:45 | ||||||
ОК тогда как мне вызвать loadXML без IE шных выпендронов вроде
Для меня пока предел - последные версии Opera, IE и Mozilla |
| Автор: Sardar 8.1.2006, 17:08 | ||
Почему? Религия не позволяет? |
| Автор: Lixil 8.1.2006, 17:31 | ||
только что в отчаянии попытался. Не вышло... Мозилла обрезает все td обрезает |
| Автор: Greendrake 8.1.2006, 18:21 |
| Хм, тока что выяснил что Мозилла вот просто так не позволит loadXML заюзать. У них свои метОды: http://developer.mozilla.org/en/docs/Migrate_apps_from_Internet_Explorer_to_Mozilla#XML_data_islands Впрочем, в обоих случаях (и через loadXML и через мозилловский parseFromString) мы получаем объект типо DOM XML. Но аппендиться к имеющемуся HTML-дереву он не хочет!! Кстати, innerHTML вроде тока у дивов мона перезаписывать, то что ИЕ это позволяет делать для TR и TD - это вольности. |
| Автор: Sardar 9.1.2006, 17:25 | ||||
Звиняюсь не проверил. Действительно tbody, tr, table имеют read-only свойство innerHTML, поэтому только insertRow() методом таблицу править и можно. Мозилла 1.5 кстати хавает такое:
Xотя это не правильно. Также возможен такой финт ушами:
Работает в ИЕ и Мозилле, но не пашет в Опера8.5 (при чём никаких ошибок в консоли, просто молча всё игнорирует). Вообще советую отдавать инфу не как HTML, а в виде JSON (JS массива/обьекта с инфой). |