| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Работа с HTML до его вставки в дерево DOM |
| Автор: WIPS 15.6.2009, 13:24 | ||||
| Суть вопроса. Допустим, что от аякса (не важно откуда) пришел HTML, он содержится как строка в переменной. Теперь нам этот HTML нужно вставить в дерево элементов, чтобы он пропарсился и все такое, делаем так:
Вопрос в том, можно ли как-то менять этот HTML средствами DOM (а не парсиньем строки), до того как мы включим его в дерево элементов документа, т.е. как-то так (ф-ции выдуманные, не пинать!):
Насколько я понял - это не возможно, но буду рад если кто-нибудь меня переубедит ... или подскажет альтернативы |
| Автор: Astraller 15.6.2009, 13:34 | ||
Возможно извращение, но почему не так:
|
| Автор: WIPS 15.6.2009, 14:20 | ||
В такой ситуации во время
элемент span и наша строка уже вставляется в дерево DOM, а мне надо перед этим произвести манипуляции... |
| Автор: Astraller 15.6.2009, 14:33 |
| Я думал суть в изменении не до фактического вставления в DOM, а в изменении до того как увидит пользователь... я ошибался? |
| Автор: Aliance 15.6.2009, 15:13 |
| А почему бы это не сделать после добавления в документ? Ведь DOM работает с узлами, а не со строками. |
| Автор: Astraller 15.6.2009, 17:21 |
| Ээээ, в действительности можно попробовать соорудить скрытый фрейм, в который поместить полученный HTML. Таким образом вы получите "экземпляр странице в пробирке". С которым можно делать все что угодно. |
| Автор: bazzjr 15.6.2009, 17:50 |
| Не понял для какой целы нужны данные манипуляции, да и вообще правильный ли подход к решению проблеммы... |
| Автор: ksnk 15.6.2009, 19:30 |
| Вообще-то document.createElement(...)+ innerHTML=... никуда никакой элемент не вставляют. И getElementById свежесостряпанную веточку найти не смогут до его реальной вставки в дерево. |
| Автор: WIPS 15.6.2009, 21:25 | ||||||
Да я тоже об этом думал. Но фрейм как-то громоздко
Цель - мировое господство
Хм... а что же тогда происходит? Поподробнее пожаста, если Вас не затруднит.
А в какой момент происходит "реальная" вставка. На element.show()? Тоже хотелось бы поподробнее. |
| Автор: Astraller 15.6.2009, 21:28 | ||
Как я понимаю, в момент appendChild'а |
| Автор: ksnk 15.6.2009, 22:24 | ||||
|
| Автор: youri 15.6.2009, 23:24 | ||||
с этой проблемой вроде разобрались, что еще не так?
можно, но не нужно а в чем же, как не в нем? Или ты предпочитаешь решать проблемы так, как в голову всбредет, а не выбирать лучший в данной ситуации (нормальный) подход? |
| Автор: WIPS 16.6.2009, 10:00 | ||||||||
интересно как это Вы разбираетесь с одинаковыми id?
я сам решу нужно ли мне создавать альтернативный документ, а вот если Вы знаете как это сделать, то милости прошу - поведайте
я предпочитаю решать проблему оптимальным способом, и если бы Вы были внимательнее, то увидели бы выше, что проблема уже решена, или словосочетание "академический интерес" Вам не понятно? Судя по эксперименту ksnk так и есть. ksnk, спасибо Вам за точный пример по теме! Но повторюсь, что чисто в образовательных целях было бы интересно, можно ли как-то сделать операцию аналогичную такой:
|
| Автор: Astraller 16.6.2009, 10:16 | ||||
А в чем проблема то:
|
| Автор: ksnk 16.6.2009, 10:34 |
| Astraller, а если вставлено ветвистое дерево? |
| Автор: Astraller 16.6.2009, 10:51 | ||
Ваша правда, не учел:
|
| Автор: WIPS 16.6.2009, 10:58 | ||
Эх, не успел... у меня такое вышло:
вобщем я добавил функу в прототип, чтобы работало "нативнее". Вот так ненавящиво мы и подошли к решению вопроса. Таки можно по дереву побегать не вставляя его в основное дерево документа. Всем спасибо. |
| Автор: Astraller 16.6.2009, 11:02 |
id лучше получать по getAttribute ибо до вставки в DOM приколы могут быть самые разные |
| Автор: WIPS 16.6.2009, 11:08 | ||
согласен, исправил |
| Автор: youri 16.6.2009, 13:33 | ||||||
я с ней не разбирась, вы с ней разобрались, благодаря ksnk
ну раз сами решите, то сами и решайте, как это сделать ;)
какая разница: есть/была проблема, но нету контекста. Или вы решаете проблемы универсально, вне зависимости от контекста? |
| Автор: WIPS 16.6.2009, 14:25 |
| youri, спасибо за Ваше мнение, оно очень важно для нас ;) Тема закрыта. |