У меня возникает странная проблема в IE, когда я задаю для атрибута innerHTML elements строку, содержащую элемент script.
Что происходит, когда innerHTML установлен как:
domEl.innerHTML = "<script type=\"text/javascript\">alert(\"hello world\");</script>"
alert(domEl.innerHTML);
В окне предупреждения не отображается текст, как если бы элемент сценария был полностью удален. Кроме того, проверка коллекции childNodes элемента также показывает, что элемент script отсутствует как domEl.childNodes.length
= 0.
Однако, если вы добавите текст перед тегом скрипта, вот так:
domEl.innerHTML = "start text<script type=\"text/javascript\">alert(\"hello world\");</script>"
alert(domEl.innerHTML);
Элемент script присутствует, когда отображается окно предупреждения.
Почему это происходит и как я могу исправить это правильно? Это ошибка в IE? Он отлично работает в последних версиях Chrome и Firefox. Я использую IE 8 для этого.