Этот код innerHTML не был надежно работает в IE8: (но работает в IE6 IE7 FF Opera Chrome Safari) (по не работает надежно, я имею в виду, я поместил этот код в OnMouseOver обработчиков на различных элементов, иногда было бы изменить текст при наведении курсора на данный элемент, а иногда это не так - не было никакой закономерности в этом - будет ли она работать или нет, казалось, совершенно случайно)innerHTML ошибка IE8
document.getElementById("mydiv").innerHTML="some text";
методы DOM (удаление и повторное добавление div с обновленным текстом) тоже не помогли.
Поэтому я добавил это сразу после того, как приведенный выше код и установил его:
document.styleSheets[0].addRule("#mydiv:after", "content: ' ';");
Используя условные комментарии я определил этот 2-й строки кода, как для IE8 только
Я уверен, это будет спасать людей много времени с тех пор, как я потратил столетия на это! Даже Jquery.text()
не помогал!
Я читал в другом месте, что innerHTML обновит DOM, но может не обновить элементы экрана. Я считаю, что правило CSS работает, потому что оно динамически изменяет содержимое псевдо-класса #mydiv и, следовательно, требует обновления содержимого mydiv, тем самым обновляя экран (что-то внутреннее HTTML не удалось).
Однако, если у кого есть лучшее решение, которое я хотел бы услышать - спасибо
редактироваться ЗАПРОШЕННЫЙ
Добро пожаловать на SO. Можете ли вы указать, что означает «не работает надежно» в этом контексте? Почему правило CSS исправляет все, что не работает? Сообщения об ошибках и исправления хорошо и хорошо, но им нужна определенная основа. –
Уверены, что у вас не было дублированных идентификаторов или чего-то еще? Вы знаете, что 'getElementById (« mydiv »)' фактически возвращает правильный DOMElement? –