Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Глюки при установке className в ИЕ6 (https://javascript.ru/forum/events/6525-glyuki-pri-ustanovke-classname-v-ie6.html)

kostyl 03.12.2009 01:45

Глюки при установке className в ИЕ6
 
Устанавливаю JS-ом className у дива. Иногда глючит, не могу понять почему. Причем это происходит так. Устанавливаю className. Див растягивается до бесконечности по ширине. Захожу в Сервис/свойства обозревателя/Ок и вуаля, всё встало на свои места.
Чё блин за бред???

subzey 03.12.2009 09:30

Ну, вы хотя бы ссылку на пример оставили. Всех "особенностей" IE6 и не упомнишь.

kostyl 03.12.2009 09:41

я бы вставил, но вот это всё динамически делается.
Вообщем там происходит примерно следующее
var El = document.getElementById(ElId);
if(ElClassName && ElClassName != '') {
El.className = ElClassName;
}
if(ElContent && ElContent != '') {
El.innerHTML = ElContent;
}


Я знаю есть проблемы с путаньем name и id при getElementById, но name я вообще не использую. В связи с вышеописанным, я думаю что возможно ИЕ не хочет обновить до конца DOM. А когда я вызваю менюшку то он это делает. Может есть способ заставить браузер обновить дерево?

Riim 03.12.2009 09:51

Цитата:

Сообщение от kostyl
не хочет обновить до конца DOM

Поиск нужно использовать. http://javascript.ru/forum/dom-windo...-stranicy.html

kostyl 03.12.2009 10:11

ну эта статья мне ничем не помогла...

kostyl 03.12.2009 12:06

а есть какой нибудь тетод у div-а типа repaint() или подобное?

Kolyaj 03.12.2009 12:08

Цитата:

Сообщение от kostyl
а есть какой нибудь тетод у div-а типа repaint() или подобное?

Нативного нет. Он обычно эмулируется, ты не поверишь чем... установкой и удалением CSS-класса :)

kostyl 03.12.2009 12:53

Цитата:

Сообщение от Kolyaj (Сообщение 37059)
установкой и удалением CSS-класса :)

:blink: попробую два раза установить ))

kostyl 03.12.2009 14:24

Похоже не я один с такой проблемой.
Мне кажется, что проблема с CSS классом обусловлена проблемой в обновлении DOM при записи innerHTML контента. Я даже иногда наблюдал ситуации "увечья" отображения без присваивания классов, а лишь с изменением контента. А эта штука в ИЕ лечится внедрением элементов, вроде, исходя из нагугленного мной. Но я не пробовал еще.
Как думаете?

Kolyaj 03.12.2009 14:46

Можно попробовать стандартные таблетки: position: relative или zoom: 1.


Часовой пояс GMT +3, время: 21:03.