2009-04-18 15 views
6

Digamos que mis scripts de JavaScript no están incrustados en html/xml ... Quiero escribir una pequeña biblioteca de funciones de ayuda para usar en mis scripts. Obviamente tiene que haber una palabra clave "#include" o "require" en javascript, pero no puedo encontrar ninguna. Todo lo que pueda con Google depende de que el código forme parte de html/xml, lo que no ayuda en mi caso. ¿Qué debo hacer?cómo #include en javascript?

+0

¿Qué necesita para incrustar/requerir? – James

+0

Un archivo .js con varias funciones ... Quiero usar estas funciones en otros archivos .js. –

+0

¿Qué pasa con la carga de la función (src) {var s = document.createElement ('script'); s.src = src; document.body.appendChild (s);} – James

Respuesta

17

Creo que quiere escribir algún tipo de marco de seguimiento de dependencias para sus archivos javascript y usar un proceso llamado "Lazy-Loading" para cargar el archivo JS requerido solo cuando sea necesario.

Echa un vistazo Using.js, parece hacer lo que necesita.

También es posible que desee comprobar addModule en YUILoader. Permite cargar componentes de framework que no son de YUI sobre la marcha.

+1

¡Gracias! Using.js suena bien. –

+1

¡debes incluir Using.js primero! – dfa

+0

Pero espere, ¿estas bibliotecas básicamente no añaden etiquetas de script al encabezado del documento? - y, por lo tanto, ¿solo funciona con JavaScript que se analiza en el contexto de un DOM (es decir, un proyecto web)? El OP no está haciendo trabajo web, está usando JavaScript para algo completamente diferente, dijo. No hay archivos HTML, etc. – BrainSlugs83

-2

para incluir un archivo JS en html:

<script type="text/javascript" src="..."></script> 

que debería estar en la cabeza de página para la corrección.

+2

Puede hacer que el javascript escriba uno de estos en la cabeza también. –

+4

Gracias, pero eso no es lo que quise decir en absoluto. Tengo un archivo .js que utilicé fuera de cualquier código html. No es para la web en absoluto. Ahora quiero importar otro archivo .js al mío. ¿Cómo puedo hacer eso? –

+0

Ah, vale, entonces la respuesta es no. Tendría que incluir el código directamente en el js, o utilizar una página html con la cabeza para unir los archivos js (y proporcionar la interfaz de usuario). –

2

Realmente no hay un #include realmente ni se requiere en javascript. En realidad, se supone que debes manejar todas las dependencias tú mismo. He visto a gente hacer un hack donde hacen un document.write para incluir otros archivos javascript.

-1

en el caso de que se preocupa, aquí hay una versión de incluir que utiliza el objeto de documento a través de su interfaz DOM:

function include(aFilename) { 
    var script = document.createElement('script'); 
    script.src = aFilename; 
    script.type = 'text/javascript'; 
    document.getElementsByTagName('head')[0].appendChild(script) 
} 

el problema es que debe incluir esta función en todo el archivo de origen que necesita incluye ...: P: P

+0

aNombre de archivo no referenciado desde el script. ¿Y cómo es esto útil? –

+0

incluye debe tener una devolución de llamada .. porque cuando estamos incluyendo de la manera anterior nunca sabemos si todos los archivos necesarios se han incluido antes de que se estén utilizando. Preferiría usar las funciones YUI.add() y YUI.use() –