Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Javasсriрt. Не отображаются элементы, присутствующие в DOM-е (IE-6)

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Javasсriрt. Не отображаются элементы, присутствующие в DOM-е (IE-6)
Имя
Сообщение << Старые топики   Новые топики >>
Javasсriрt. Не отображаются элементы, присутствующие в DOM-е (IE-6) - 2009-12-08 05:17:05.416666   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Создаю, значит, с помощью document.createElement() и document.createTextNode() элементы, вкладываю их друг в друга(node.appendChild) и присобачиваю всё это дело к document.bоdу всё тем же appendChild-ом.
Если это был, например, div, в котором лежит текст, то всё нормально отображается на экране.
Если же это таблица(а в ней строка, а в ней td, а в ней текст), то тоже отображается, но только не в IE-6. Странно, что в дереве DOM все эти узлы присутствуют, а вот на экран почему то не показываются…

Буду рад, если кто нибудь разъяснит мне сей феномен)
Post #: 1
RE: JavaScript. Не отображаются элементы, присутствующие в DOM-е (IE-5) - 2009-12-08 10:29:57.350000   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
IE 5???????? Это прикол?
Post #: 2
RE: JavaScript. Не отображаются элементы, присутствующие в DOM-е (IE-5) - 2009-12-08 10:46:11.653333   
Papa James

Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
Насколько я помню - все версии IE некорректно добавляют ноды в таблицу. А IE 5… Где нашли-то его?!
Post #: 3
RE: Javasсriрt. Не отображаются элементы, присутствующие в DOM-е (IE-5) - 2009-12-08 11:13:34.933333   
Agent Smith

Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
Скорее всего, вы пытаетесь всунуть в какой-то тег, то, что там не должно быть, а IE воспринимает это как ошибку. Приведу пример:
<form action="…">
<table>
    <tr>
       <td id="insert">
       </td>
    </tr>
</table>
</form>
Если вы попытаетесь вставить "</td></tr></table><table><tr><td>" в элемент "insert" IE выдаст ошибку. Если попытаетесь вставить <form>…</form> в элемент "insert" IE тоже выдаст ошибку. Пишите правильно свои скрипты с грамотной HTML версткой и тогда у вас не будет возникать проблем с IE.

P.S. Весь мир уже давно отказался от IE 5. У нас на работе за такое доплачивают:)
Post #: 4
RE: Javasсriрt. Не отображаются элементы, присутствующие в DOM-е (IE-5) - 2009-12-08 13:30:27.683333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Прошу прощения - IE 6.

Структура вложенности тегов такова:
<table>
<tr><td>
<div>TextNode</div>
<div>TextNode</div>
<div>TextNode</div>
</td></tr>
</table>

Вроде проще и грамотнее некуда… )
Post #: 5
RE: Javasсriрt. Не отображаются элементы, присутствующие в DOM-е (IE-5) - 2009-12-08 14:07:02.833333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Вот, примерно так это происходит:

&lt;script type="text/javascript"&gt; document.onLoad = func(); function func(){ var table = document.createElement('table'); var tr = document.createElement('tr'); var td = document.createElement('td'); var text = document.createTextNode('ТекстТруЛяЛя'); td.appendChild(text); tr.appendChild(td); table.appendChild(tr); document.body.appendChild(table); }; &lt;/script&gt;
Post #: 6
RE: Javasсriрt. Не отображаются элементы, присутствующие в DOM-е (IE-5) - 2009-12-08 15:15:56.210000   
Papa James

Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
function func(){ var table = document.createElement('table'); var tbody = document.createElement('tbody'); var tr = document.createElement('tr'); var td = document.createElement('td'); var text = document.createTextNode('тавтвааврвапва'); td.appendChild(text); tr.appendChild(td); tbody.appendChild(tr); table.appendChild(tbody); document.body.appendChild(table); return false; }; Надо создать TBODY :)
Post #: 7
RE: Javasсriрt. Не отображаются элементы, присутствующие в DOM-е (IE-5) - 2009-12-08 17:11:58.883333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Офигеть!… А я и не знал, что у таблицы тоже своё Боди есть….))
Хотя теперь припоминаю, при анализе html-кода с помощю firebug я краем глаза замечал, как к таблицам прилипало это "тело", но почему то это быстро ускользало от моего внимания и я не удосужился сам в этом разобраться.

Спасибо-приспасибо тебе, добрый человек!!)

А нет ли в природе такого справочника хорошего со всеми возможными узлами и методами ветвистого DOM-дерева?
Но только чтоб не самоучитель был с долгими нудными пояснениями и философскими рассуждениями а тупо чисто СПРАВОЧНИК. Ну, как у PHP, например есть…
Post #: 8
RE: Javasсriрt. Не отображаются элементы, присутствующие в DOM-е (IE-5) - 2009-12-08 18:17:16.970000   
Papa James

Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
Не за что :)
http://javascript.ru/ - хороший сайтик
http://www.spravkaweb.ru/javascript/ - вот тоже ниче.
НУ если пользуешься фреймворками, типа jQuery, - везде есть подробная документация
Post #: 9
RE: Javasсriрt. Не отображаются элементы, присутствующие в DOM-е (IE-5) - 2009-12-08 18:18:32.826666   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
mr_Anderson
я предпологаю, что вашу проблемму надо решить несоклько другим способом.
я тоже сталкивался с подобной проблеммой.. дело в том, что ИЕ до 8-й версии некорректно создаёт таблицы… ну или поля.. часто бывает так, что колспан вообще не учитывает при динамическом добавлении элементов.. для создания строк и ячеек есть другая кросбраузерная функция, отличная от createElement
Для корректной вставки строй и ячеек существуют insertCell и insertRow
Post #: 10
RE: Javasсriрt. Не отображаются элементы, присутствующие в DOM-е (IE-5) - 2009-12-08 20:44:51.983333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
quote:

Для корректной вставки строк и ячеек существуют insertCell и insertRow

Очень интересно! Я вообще только неделю назад JS юзать начал - не успел ещё достаточно освоиться. По этому не знал о существовании insertCell и insertRow. Спасибо большое! Буду пользоваться.
Post #: 11
RE: Javasсriрt. Не отображаются элементы, присутствующие в DOM-е (IE-5) - 2009-12-09 09:59:58.493333   
Papa James

Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
Кстати, а проблема с созданием таблицы возникла "специально". То есть сделано было из-за соображений безопасности. Читал интервью (переведенное) разработчика, который отвечал за это - так он сам столкнулся с такой проблемой и только тогда вспомнил, что натворил :)
Post #: 12
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Javasсriрt. Не отображаются элементы, присутствующие в DOM-е (IE-6)







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.