elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [javascript] llamar a funcion que se recibe por parametro de la funcion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [javascript] llamar a funcion que se recibe por parametro de la funcion  (Leído 4,072 veces)
Graphixx


Desconectado Desconectado

Mensajes: 1.336


Full Stack Developer


Ver Perfil WWW
[javascript] llamar a funcion que se recibe por parametro de la funcion
« en: 24 Abril 2012, 19:36 »

Primero que todo aclarar que lo que estoy tratando de hacer no es recursividad.
quiero que al pulsar enter en un textbox pueda llamar a determinada funcion:

llevo en el index.php:

Código
  1. <input name="texto" type="text" id="texto" size="40" onkeypress="keydown(event,'funcion')">
  2.  

en el archivo funciones_javascript.js:
Código
  1. //CAPTURAR ENTER Y REDIRIGIRLO HACIA OTRA ACCION
  2. function keydown(e,s){
  3.    if (!e) var e = window.event;
  4.    if (e.keyCode) code = e.keyCode;
  5.    else if (e.which) code = e.which;
  6.    if (code==13){
  7.    //alert ("presiono enter");
  8.    //document.getElementById(s).focus();
  9. esta_es_otra_funcion('buscar','1')
  10.    }
  11.    }
  12.  

la funcion javascript recibe por la variable 'funcion' el nombre de la otra funcion que deberia ejecutar al presionar enter, como invoco o llamo a esa funcion que recibi desde la funcion actual????

que no tenga que hacer:
Código
  1. if (funcion=='buscar')
  2.    buscar();
  3. elseif (funcion=='ejecutar')
  4.   ejecute();
  5. etc...

Probe a llamarla usando:
Código
  1. function keydown(e,s){
  2.    if (!e) var e = window.event;
  3.    if (e.keyCode) code = e.keyCode;
  4.    else if (e.which) code = e.which;
  5.    if (code==13){
  6. //alert ("presiono enter");
  7.    //document.getElementById(s).focus();
  8. //medicamentos('buscar','1')
  9. var f = new Function(s+";");
  10.    f();
  11.    }
  12.    }
  13.  

pero no funciono.

El primer obstaculo a sortear es como enviar la funcion desde el evento del campo sin deformar la estructura de la peticion de la primera funcion asi:
Código
  1. <input name="texto" type="text" id="texto" size="40" onkeypress="keydown(event,'buscardatos('buscar','1')')"></td>
  2.  
Como deberia enviar la segunda funcion dentro de la primera ????

lo solucione enviando los parametros de la segunda funcion cifrados por asi decirlo asi:
Código
  1. <input name="texto" type="text" id="texto" size="40" onkeypress="keydown(event,'estaesotrafuncion¡%buscar%,%1%!')">
donde reemplazamos:
( por ¡
) por !
y las '' por %%

Y despues en el evento que me detecta el enter:
Código
  1. //CAPTURAR ENTER Y REDIRIGIRLO HACIA OTRA FUNCION
  2. function keydown(e,s){
  3.    if (!e) var e = window.event;
  4.    if (e.keyCode) code = e.keyCode;
  5.    else if (e.which) code = e.which;
  6.    if (code==13){
  7.  
  8. //Cadena original
  9.    var texto = s;
  10.    //Reemplazamos todas las cadenas
  11.    texto = texto.replace(/¡/g, '(');
  12. texto = texto.replace(/!/g, ')');
  13. texto = texto.replace(/%/g, "'");
  14.  
  15. //llamamos a la funcion recibida
  16. var f = new Function(texto+";");
  17.    f();
  18.      }
  19.    }
  20.  

Y asi logramos usar una funcion para llamar a otras funciones!!!!
 ;-) ;-) ;-) ;-)


« Última modificación: 24 Abril 2012, 21:06 por Graphixx » En línea

Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines