внутренняя ошибка HTML8 IE8 - PullRequest
4 голосов
/ 24 мая 2010

Этот код innerHTML не работал надежно в IE8: (но работал в IE6 IE7 FF Opera Chrome Safari) (не работая надежно, я имею в виду, что я поместил этот код в обработчики onmouseover на различных элементах, иногда он изменял текст при наведении указателя на данный элемент, а иногда - нет - для этого не было шаблона - будет ли он работать не казался абсолютно случайным)

document.getElementById("mydiv").innerHTML="some text";

Методы DOM (удаление и повторное добавление div с обновленным текстом) также не помогли.

Так что я добавил это сразу после кода выше, и это исправило:

document.styleSheets[0].addRule("#mydiv:after", "content: ' ';");

Используя условные комментарии, я идентифицировал эту вторую строку кода только для IE8

Я уверен, что это сэкономит людям много времени, так как я потратил впустую целую вечность! Даже Jquery.text() не помог!

Я читал в другом месте, что innerHTML будет обновлять DOM, но может не обновлять элементы экрана. Я считаю, что правило CSS работает, потому что оно динамически изменяет содержимое псевдокласса после #mydiv и, следовательно, требует обновления содержимого mydiv, что обновляет экран (что-то, что innerHTML не смог сделать).

Однако, если у кого-то есть лучшее решение, которое я хотел бы услышать - Спасибо

РЕДАКТИРУЕТСЯ ПО ЗАПРОСУ

1 Ответ

0 голосов
/ 12 ноября 2011

Вы можете использовать innerText вместо innerHTML

...