2009-07-29 10 views
37

Quiero crear una etiqueta de script mediante jQuery.¿Puedo crear una etiqueta de script mediante jQuery?

uso el siguiente código:

$("<body>").append("<script></script>"); 

No funciona. ¿Qué vas a hacer para lograrlo?

+0

Solo me interesa: ¿por qué harías eso? Ya está ejecutando código JavaScript, entonces, ¿por qué necesita otro bloque? – Kobi

+7

http://stackoverflow.com/questions/610995/jquery-cant-append-script-element –

+4

Quiero cargar otro archivo javascript después de cargar la página. – Billy

Respuesta

64

Debe hacerlo al igual que

var script=document.createElement('script'); 
script.type='text/javascript'; 
script.src=url; 

$("body").append(script); 
+2

He probado este código y funciona. Gracias. – Billy

+1

De nada, Billy. –

+3

suena como una respuesta aceptada viene? – geowa4

10

El error está en el selector:

$("body").append("<script>alert('hello world');<\/script>"); 

Tenga en cuenta que usted tiene que escapar de los caracteres no permitidos en la cadena anexa.

16

¿Por qué no aprovechan jQuery.getScript(url,[callback])

+3

Quiero cargar otro javascript que el javascript está en otro dominio. – Billy

+4

getScript seguirá funcionando ... – James

+9

Esto debería ser un comentario en lugar de una respuesta, o al menos debe escribirse como una respuesta en lugar de como una pregunta. No está claro que 'getScript()' pueda hacer todo lo posible con la creación de etiquetas de script. Y si lo es, la respuesta sería mucho mejor si en verdad lo dijera. – hippietrail

33

Para cargar desde una URL:

$("body").append($("<script />", { 
    src: url 
})) 

Para cargar desde el código fuente existente:

$("body").append($("<script />", { 
    html: code 
})) 
+4

+1 para mostrar ejemplos con html en lugar de solo URL –

0

Esto puede ayudar, que terminan aquí después 8 años

$('<script>alert("hi");</' + 'script>').appendTo(body); 

La única razón por la que no puede hacer $('<script></script>') es porque la cadena no está permitida dentro de javascript porque la capa DOM no puede analizar qué es js y qué es html.

Cuestiones relacionadas