Этот код 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 не смог сделать).
Однако, если у кого-то есть лучшее решение, которое я хотел бы услышать - Спасибо
РЕДАКТИРУЕТСЯ ПО ЗАПРОСУ