Странная проблема в IE при установке атрибута innerHTML элемента для содержания элемента script - PullRequest
1 голос
/ 14 декабря 2011

У меня возникает странная проблема в 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 для этого.

1 Ответ

0 голосов
/ 14 декабря 2011

выглядит как ошибка или странное соображение безопасности в IE.попробуйте использовать теги XMP вокруг вашего текста.это может сработать, но это зависит от того, чего вы пытались достичь.

...