2012-05-11 2 views
-3

Можно создать дубликат:
How to dynamically insert a <script> tag via jQuery after page load?добавления сценария в головной метке

у меня есть этот код

var scri = "<script type=\"text/javascript\">var _gaq = _gaq || []; _gaq.push(['setAccount','UA-22xxxxx3-15']); _gax.push(['_trackPageview']); <\/script>"; 
document.getElementsByTagName("script")[23].add(scri); 
console.log(scri); 

Я хочу, чтобы добавить этот элемент в голову из документ и я попытался .append() .text() .add() и множество других методов, но я всегда получаю эррос. последний был

Uncaught TypeError: Object #<HTMLScriptElement> has no method 'add' 

Любая идея, как я могу добавить это к элементам головы?

+0

Вы связывающая библиотеку JQuery в? – Chase

+0

http://stackoverflow.com/questions/3857874/how-to-dynamically-insert-a-script-tag-via-jquery-after-page-load – PeeHaa

ответ

3

Вы должны использовать document.createElement и .appendChild():

var script = document.createElement("script"); 
script.innerHTML = "alert(\"This is the truth.\");"; 
document.head.appendChild(script); 
+0

Благодарим за помощь. – Leon

+0

Зачем вставлять встроенный код в тег HEAD? Я знаю, что это то, что задал ОП, но нет причин делать это так: можно просто выполнить желаемый код, а не вставить его в главный тег. – jfriend00

+0

@ jfriend00 У вас может быть лучший способ сделать это, но я думаю, что если у вас есть функция, которую вам придется вызывать несколько раз позже, добавление ее в DOM делает ее намного проще. Также я хотел бы отметить, что 'document.head' обрабатывается намного быстрее, чем' document.getElementsByTagName'head ') [0] 'и поддерживается даже в IE, когда речь идет о производительности. [Протестируйте это самостоятельно] (http://jsperf.com/document-head) –

0

Почему вы присоединените инлайн-скрипт к головному тегу? Это не нужно делать. Добавление к тегу HEAD полезно, если вы хотите загрузить файл удаленного сценария по URL-адресу, но не нужен или полезен в вашем случае.

Чтобы просто выполнить некоторый встроенный код в точке, где ваш код JS хочет запустить что, просто выполнить свой код так:

var _gaq = _gaq || []; 
_gaq.push(['setAccount','UA-22xxxxx3-15']); 
_gaq.push(['_trackPageview']); 
Смежные вопросы