Me gustaría preguntarles acerca de un pequeño problema que tengo cuando añado un archivo javascript dinámicamente y quiero acceder a las funciones de éste después de haberlo cargado.
Voy a escribirlo en un ejemplo.
Tengo el siguiente archivo dinamicos.html:
Código HTML:
Ver original
Tengo también un archivo .js llamado prueba2.js, que carga dinámicamente un elemento <script> que enlaza con un archivo .js externo:
prueba2.js
Código Javascript:
Ver original
function loadScript(url) { //url es la url del archivo javascript externo que se quiere cargar var script = document.createElement("script"); script.type = "text/javascript"; script.src = url; document.body.appendChild(script); }
Y finalmente, tengo un archivo .js llamado funciones.js en el que tengo dos funciones muy simples:
funciones.js
Código Javascript:
Ver original
function diAdios() { alert("Adiós"); } function diHola() { alert("Hola"); };
La cuestión es que yo quiero cargar el archivo funciones.js de forma dinámica llamando a loadScript("funciones.js") desde el archivo dinamicos.html.
Esto se realiza correctamente, pero cuando quiero utilizar una función del archivo funciones.js desde el archivo dinamicos.html, llamando por ejemplo a diHola(), obtengo el siguiente error: Uncaught ReferenceError: diHola is not defined.
Observando el código fuente de dinamicos.html después de insertar el script dinámicamente se puede ver como sí se ha insertado un nuevo elemento <script> que enlaza al archivo funciones.js.
El problema es que después no puedo utilizar ninguna de las funciones de este archivo .js desde el archivo html.
Si alguien entiendo lo que quiero decir agradecería alguna solución.