[javascript] llamar a funcion que se recibe por parametro de la funcion

Iniciado por Graphixx, 24 Abril 2012, 19:36 PM

0 Miembros y 1 Visitante están viendo este tema.

Graphixx

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 (html4strict) [Seleccionar]

<input name="texto" type="text" id="texto" size="40" onkeypress="keydown(event,'funcion')">


en el archivo funciones_javascript.js:
Código (javascript) [Seleccionar]

//CAPTURAR ENTER Y REDIRIGIRLO HACIA OTRA ACCION
function keydown(e,s){
   if (!e) var e = window.event;
   if (e.keyCode) code = e.keyCode;
   else if (e.which) code = e.which;
   if (code==13){
   //alert ("presiono enter");
   //document.getElementById(s).focus();
esta_es_otra_funcion('buscar','1')
   }
   }


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 (javascript) [Seleccionar]
if (funcion=='buscar')
   buscar();
elseif (funcion=='ejecutar')
  ejecute();
etc...


Probe a llamarla usando:
Código (javascript) [Seleccionar]

function keydown(e,s){
   if (!e) var e = window.event;
   if (e.keyCode) code = e.keyCode;
   else if (e.which) code = e.which;
   if (code==13){
//alert ("presiono enter");
   //document.getElementById(s).focus();
//medicamentos('buscar','1')
var f = new Function(s+";");
   f();
   }
   }


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 (html4strict) [Seleccionar]

<input name="texto" type="text" id="texto" size="40" onkeypress="keydown(event,'buscardatos('buscar','1')')"></td>

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 (html4strict) [Seleccionar]
<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 (javascript) [Seleccionar]

//CAPTURAR ENTER Y REDIRIGIRLO HACIA OTRA FUNCION
function keydown(e,s){
    if (!e) var e = window.event;
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
    if (code==13){

//Cadena original
    var texto = s;
    //Reemplazamos todas las cadenas
    texto = texto.replace(/¡/g, '(');
texto = texto.replace(/!/g, ')');
texto = texto.replace(/%/g, "'");

//llamamos a la funcion recibida
var f = new Function(texto+";");
    f();
      }
    }


Y asi logramos usar una funcion para llamar a otras funciones!!!!
 ;-) ;-) ;-) ;-)
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog