¿Cuál es la forma recomendada de incluir un archivo Javascript desde otro archivo Javascript?¿Cuál es la mejor manera de incluir un archivo JS a partir del código JS?
Respuesta
¿Qué tal esto:
<script type="text/javascript">
// Function to allow one JavaScript file to be included by another.
// Copyright (C) 2006-08 www.cryer.co.uk
function IncludeJavaScript(jsFile)
{
document.write('<script type="text/javascript" src="'
+ jsFile + '"></scr' + 'ipt>');
}
</script>
y luego para incluir un segundo archivo JavaScript sólo tiene que añadir la línea:
IncludeJavaScript('secondJS.js');
La página que vino de incluye también algunas precauciones que surgen de este enfoque, por lo que vale la pena mirar antes de usar el método.
Hay bibliotecas que lo harán por usted. También puede agregar una etiqueta de script a su documento que apunte al archivo que desea cargar (desde js), que es el más simple, pero tiene problemas.
http://developer.yahoo.com/yui/yuiloader/
http://www.appelsiini.net/projects/lazyload
Editar: Veo una gran cantidad de respuestas que añadir una etiqueta de script a la cabecera de su documento. Como dije, esta simple solución tiene un problema, es decir, no sabrá cuándo el navegador ha terminado de cargar el script que solicitó, por lo que no sabrá cuándo puede llamar a este código. Si desea utilizar una solución como esta, también debería agregar una devolución de llamada de alguna manera para informarle cuándo se cargó el código requerido.
una devolución de llamada es algo perfectamente razonable de hacer: al final del día, cada arranque de la biblioteca es solo una implementación de esta técnica, Ryan Doherty acaba de publicar un ejemplo simple. – annakata
El complemento Lazy Load se trata de imágenes de carga diferida. No carga archivos JavaScript. –
La mayoría de la gente agrega el archivo JavaScript a la cabeza del documento:
<script type="text/javascript">
var newfile=document.createElement('script');
newfile.setAttribute("type","text/javascript");
newfile.setAttribute("src", '/myscript.js');
document.getElementsByTagName("head")[0].appendChild(newfile);
</script>
Theres también una función integrada en Scriptaculous que es muy fácil de usar.
Scriptaculous.require("path/to/script.js");
Merece la pena saberlo, ya que Scriptaculous es una librería de JavaScript muy común en estos días.
jQuery tiene getScript() función. También tenga en cuenta que la carga diferida mencionada anteriormente es solo para imágenes. No para archivos de JavaScript.
$.getScript(url, [callback]);
Dojo lo hace utilizando dojo.require()
:
dojo.require("your.module.name");
Normalmente esto es una operación sincrónica hecho con XHR. Pero si usa la compilación de xDomain, será asíncrona y se generará dojo.addOnLoad()
cuando se cargue la secuencia de comandos.
Leer más sobre él:
- Modules
- What dojo.require does
- Quickstart: custom builds (incluye xDomain explicación)
- Cross-domain Dojo (dedicado específicamente a xDomain cosas).
- 1. ¿Cómo debo incluir un archivo js de otro archivo js?
- 2. Incluir archivo JS dentro del ámbito privado
- 3. ¿Cómo incluir el archivo js en otro archivo js?
- 4. la mejor manera de incluir el archivo js en zend framework
- 5. Incluyendo un archivo .js dentro de un archivo .js
- 6. ¿Cuál es la mejor manera de ejecutar algunos JS inmediatamente después de cargar un elemento?
- 7. ¿Cómo incluir jquery.js en otro archivo js?
- 8. ¿Cuál es la mejor manera de probar la validez de XML a partir de un método?
- 9. ¿Cuál es la mejor manera de incluir Javascript?
- 10. la mejor manera de detectar el navegador en js
- 11. Buena codificación: archivos js modulares o un archivo js grande?
- 12. ¿Cuál es la mejor manera de reemplazar enlaces con funciones JS?
- 13. ¿La mejor manera de obtener spidermonkey js en Ubuntu?
- 14. archivo js del nodo desencadenador
- 15. Constante de PHP dentro del archivo JS
- 16. ¿Cómo incluir el archivo js en la llamada ajax?
- 17. puedo llamar a un archivo js de otro.
- 18. jquery: cómo incluir otros archivos .js en .js
- 19. ¿Cuál es la mejor manera de usar los datos de almacenamiento en caché en js en el lado del cliente?
- 20. ¿Cuál es la mejor manera de documentar el código f #?
- 21. ¿Cuál es la mejor manera de llamar a un IBAction desde dentro del código?
- 22. ¿Cómo usar un archivo .js?
- 23. CodeIgniter: ¿Cómo incluyo un archivo .js a la vista?
- 24. ¿Hay alguna manera de cargar un archivo JS local dinámicamente?
- 25. ¿Cómo puedo obtener la URL del archivo JS en el mismo archivo JS?
- 26. devolver un archivo js del controlador de asp.net mvc
- 27. cómo acceder a js gama definida en otro archivo js
- 28. ¿La mejor manera de incluir el código de depuración?
- 29. Destacando js-code dentro del archivo php
- 30. ¿Cuál es la mejor forma de obtener el nombre de etiqueta de un elemento en JS?
Si usa eso después de que el documento se haya cargado, se sorprenderá ya que document.write reemplazará su documento activo. – some
Además, no es necesario dividir la etiqueta de cierre en dos partes. Dado que todo en la etiqueta de script según (x) HTML DTD es PCDATA (datos de caracteres analizados), debe escapar de la etiqueta final like this: "<\/script>" – some
debe estar DOM ensamblado, lo que hace que el segundo punto sea irrelevante – annakata