2010-05-21 9 views
8

Tengo un archivo javascript externo que se basa en la presencia de otro archivo.Auto incluye el archivo javascript si no está incluido

¿Cómo puedo, mediante JavaScript (o jQuery) incluyen automáticamente este archivo si no está ya incluido (que puede probar en base a la presencia de una función conocida en este archivo externo)

Editar: ¡Ahora incluye el archivo pero escribe todo completamente! He intentado todos los métodos sugeridos presentadas hasta ahora

Respuesta

12

Bueno, si ese archivo JavaScript define una variable específica (o una función) se puede comprobar su presencia mediante la comprobación typeof that_variable, a continuación, cargar el archivo JavaScript si es necesario . Un ejemplo, aquí es cómo se carga la biblioteca swfobject si no está disponible en la página:

if (typeof swfobject == "undefined") { 
    var e = document.createElement("script"); 
    e.src = "http://ajax.googleapis.com/ajax/libs/swfobject/2/swfobject.js"; 
    e.type = "text/javascript"; 
    document.getElementsByTagName("head")[0].appendChild(e); 
} 
+0

Sólo una nota ... He intentado esto en función de lista de documentos de jQuery y luego trató de llamar a la función en mi archivo y que era aún indefinido Terminó haciéndolo de otra manera. –

+0

@RegionalC: debe llamar a esa función _después_ de que se cargue el script cargado dinámicamente. En [la mayoría de los navegadores] (http://pieisgood.org/test/script-link-events/), puede asignar un evento de carga a elementos de script generados dinámicamente ('e.onload = function() {}'). Puede llamar a su función desde ese controlador de eventos. En (estúpido) IE 6/7/8 puede usar el evento 'onreadystatechange'. –

Cuestiones relacionadas