Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] verificar existencia se function

Estas en el tema de verificar existencia se function en el foro de Javascript en Foros del Web. buenas amigos! les ago la siguiente consulta realize una funcion con la cual verifico si una function javascript existe. saque el codigo del hilo Comprobar ...
  #1 (permalink)  
Antiguo 22/10/2009, 06:45
Avatar de hschimpf  
Fecha de Ingreso: junio-2009
Ubicación: in the World Wide Web
Mensajes: 140
Antigüedad: 14 años, 10 meses
Puntos: 17
Mensaje verificar existencia se function

buenas amigos! les ago la siguiente consulta
realize una funcion con la cual verifico si una function javascript existe.
saque el codigo del hilo Comprobar existencia de una function.
mi duda es la siguiente. a esa funcion la he modificado un poco quedando asi:
Código javascript:
Ver original
  1. function existeFunc() {
  2.     /* verificamos si ya se cargo la function */
  3.     if (typeof funcionAverificar == 'function') {
  4.         /* llamamos a la function */
  5.         funcionAverificar();
  6.     } else {
  7.         /* reintentamos */
  8.         setTimeout(existeFunc, 100);
  9.     }
  10. }
  11. existeFunc();
quiero pasarle como parametro la funcion que quiero llamar para que verifique que exista y reintente en caso de que aun no se cargo. Asi:
Código javascript:
Ver original
  1. function existeFunc(func) {
  2.     /* verificamos si ya se cargo la function */
  3.     if (typeof func == 'function') {
  4.         /* llamamos a la function */
  5.         func();
  6.     } else {
  7.         /* reintentamos */
  8.         setTimeout("existeFunc('" + func + "');", 100);
  9.     }
  10. }
Pero el problema es que pasandole el nombre de la funcion asi
Código javascript:
Ver original
  1. existeFunc('ejecutarEstaFuncion');
me reconoce como string el parametro.
Y pasando el parametro asi:
Código javascript:
Ver original
  1. existeFunc(ejecutarEstaFuncion);
me dice que 'ejecutarEstaFuncion' no esta definido.
Alguna idea de como puedo resolver esto?
gracias de antemano!
saludos
  #2 (permalink)  
Antiguo 22/10/2009, 07:37
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: verificar existencia se function

Prueba mejor así:
Código Javascript:
Ver original
  1. if (typeof window.funcion == 'function') {
  2.     funcion();
  3. } else {
  4.     /* funcion no existe o no es una función válida */
  5. }
Lógicamente, si es por parámetro, debes pasarle como parámetro window.funcion a la función que comprueba la existencia.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 22/10/2009, 07:45
Avatar de hschimpf  
Fecha de Ingreso: junio-2009
Ubicación: in the World Wide Web
Mensajes: 140
Antigüedad: 14 años, 10 meses
Puntos: 17
Respuesta: verificar existencia se function

David, gracias por tu pronta respuesta.
He intentado asi como me dices pero no me ha funcionado. Siempre devuelve undefined como tipo.
  #4 (permalink)  
Antiguo 22/10/2009, 08:00
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: verificar existencia se function

Coloca el código completo de cómo trataste de implementarlo.

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 22/10/2009, 08:14
Avatar de hschimpf  
Fecha de Ingreso: junio-2009
Ubicación: in the World Wide Web
Mensajes: 140
Antigüedad: 14 años, 10 meses
Puntos: 17
Respuesta: verificar existencia se function

Esta es la funcion para verificar la existencia:
Código javascript:
Ver original
  1. function verificarFuncion(nombreFuncion) {
  2.     /* mostramos un mensaje de prueba */
  3.     alert('window.' + nombreFuncion + ' = ' + typeof window.nombreFuncion);
  4.     /* verificamos si ya se cargo la function */
  5.     if (typeof window.nombreFuncion == 'function') {
  6.         /* si ya existe, llamamos a la function */
  7.         nombreFuncion();
  8.     } else {
  9.         /* reintentamos */
  10.         setTimeout("verificarFuncion('" + nombreFuncion + "');", 100);
  11.     }
  12.     /* retornamos true */
  13.     return true;
  14. }
Y la llamo del siguiente modo:
Código javascript:
Ver original
  1. verificarFuncion('nombreDeFuncion');
Te comento porque tengo necesidad de esto.
Me hice una funcion con la cual agrego ficheros JS durante el proceso de carga de la pagina
esta es la funcion:
Código javascript:
Ver original
  1. function import(url) {
  2.     /* verificamos si el DOM esta cargado */
  3.     if (!domLoadReady()) {
  4.         /* reintentamos */
  5.         setTimeout("import('" + url + "');", 100);
  6.     } else {
  7.         /* creamos un elemento SCRIPT */
  8.         var js = document.createElement('script');
  9.         /* le especificamos el tipo */
  10.         js.type = 'text/javascript';
  11.         /* le especificamos la ruta */
  12.         js.src = url;
  13.         /* agregamos el fichero js */
  14.         document.body.appendChild(js);
  15.         /* retornamos true */
  16.         return true;
  17.     }
  18. }
La funcion domLoadReady() verifica que se finalizo la carga de la pagina buscando la etiqueta </BODY>. No utilizo window.load = function(); porque espera a que se cargue completamente la pagina, con las fotos, etc. Yo solo necesito el DOM cargado.
Luego ejecuto la funcion mediante verificarFuncion(). Por ej:
Código javascript:
Ver original
  1. verificarFuncion('funcionQueQuieroEjecutar');
Entonces esta intenta hasta que la encuentra y la ejecuta. O sea, hasta que la funcion import() logro agregar el fichero JS.
Se entiende no? jeje
  #6 (permalink)  
Antiguo 22/10/2009, 08:15
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: verificar existencia se function

Si el parámetro siempre va a ser un string, debes hacerlo así:
Código Javascript:
Ver original
  1. if (typeof window[nombreFuncion] == 'function') {
  2.     /* Existe */
  3. } else {
  4.     /* No existe */
  5. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 22/10/2009, 08:24
Avatar de hschimpf  
Fecha de Ingreso: junio-2009
Ubicación: in the World Wide Web
Mensajes: 140
Antigüedad: 14 años, 10 meses
Puntos: 17
Respuesta: verificar existencia se function

perfecto David! me funciono asi:
Código javascript:
Ver original
  1. ...
  2.     if (typeof window[func] == 'function') {
  3.       /* llamamos a la function */
  4.       window[func]();
  5. ...
muchas gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:33.