Динамическое добавление тега скрипта на страницу - PullRequest
1 голос
/ 02 марта 2012

Я пытаюсь добавить скрипт в dom, используя insertBefore.

При запуске команд через консоль скрипт выполняется так, как ожидается, но когда тот же фрагмент кода запускается через код, он отказывается выполнять.

Это код, который я использую.

var el = document.getElementsByTagName('div')[0];
var s = document.createElement('script');
s.text = 'alert("abc");'
el.parentNode.insertBefore(s, el.nextSibling)



el.parentNode.replaceChild(s.childNodes[0], el);
el = s.childNodes[0];
for(var i = s.childNodes.length - 1; i >= 0 ; i--)
    el.parentNode.insertBefore(s.childNodes[i], el.nextSibling);

Это добавляет скрипт в DOM, но не выполняет его .a

1 Ответ

0 голосов
/ 02 марта 2012

Я не могу воспроизвести вашу проблему:

http://jsfiddle.net/treeface/8F8bK/

Вы уверены, что ваш код запускается после полной загрузки DOM? Если это не так, вы, вероятно, захотите запустить этот код следующим образом:

window.onload = function() {  
    var el = document.getElementsByTagName('div')[0];
    var s = document.createElement('script');
    s.text = 'alert("abc");'
    el.parentNode.insertBefore(s, el.nextSibling)
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...