Подтвердить что ты не робот

Создать тег script в IE8

Я тестировал наш сайт в IE8 и получил страшную ошибку Unexpected call to method or property access..

После много отладки (IE8 devtools suck), я нашел строку нарушения.

$('<script>').html(JSData).appendTo('head')

Задача $('<script>').html(JSData). Я попытался запустить именно это в консоли, и у меня все еще есть ошибка.

Почему IE8 не может установить .html во вновь созданный тег script?

P.S. Это тоже не удается:

$(document.createElement('script')).html(JSData)

UPDATE. Я попытался создать тег script без jQuery:

var scriptTag = document.createElement('script');
scriptTag.type = 'text/javascript';
scriptTag.innerHTML = JSData;

В строке scriptTag.innerHTML = JSData; IE8 дает Unknown runtime error. Спасибо IE8.

4b9b3361

Ответ 1

Ваш метод только для javascript должен добавить элемент script в документ.

IE < 9 не распознает теги innerHTML или childNodes в тегах script, но все браузеры поддерживают свойство text.

var scriptTag = document.createElement('script');
scriptTag.text= JSData;
document.body.appendChild(scriptTag);