Я пытаюсь динамически вставлять некоторые js в элемент DOM для выполнения. Однако, если я добавляю в $(document).ready()
, сценарий не оценивается (но вводится правильно). Кроме того, если я пытаюсь вставлять, поскольку DOM загружается, элемент контейнера еще не существует. Я тестировал жестко кодирование тегов сценария в контейнере, и это отлично работает. Есть ли способ вставить js в элемент DOM и оценить его в DOM или при загрузке страницы?Inject Javascript в DOM
$(document).ready(function(){
var container = document.getElementById('container_div');
var script = document.createElement('script');
script.type = 'text/javascript';
script.appendChild(document.createTextNode('[script]'));
container.appendChild(script);
//I've also tried .insertBefore and
//.parentNode.insertBefore and jQuery's .append()
});
Является ли то, что я пытаюсь сделать возможным?
Код работает для меня, за исключением того, что '' [script] '' выдает ошибку, потому что 'script' не определен. http://jsfiddle.net/T74Df/ – Yoshi
Он вставляет скрипт, но он никогда не оценивается. – Joe
То, что вы делаете, это то же, что и 'eval', что является« злым ». вместо этого лучше обратиться к файлу скрипта, установив 'script.src = 'путь/в/script.js';'. – zzzzBov