Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/08/2008, 14:55
Avatar de leac3
leac3
 
Fecha de Ingreso: abril-2007
Ubicación: Valencia, pero mi mente y corazon estan en San Francisco.
Mensajes: 147
Antigüedad: 17 años, 1 mes
Puntos: 4
Problema detectando ENTER en FF3

Hola, el problema que tengo es el siguiente, tengo un textbox en un pagina que usa Ajax (no estoy usando ningun form por razones tecnicas) y quiero que al presionar la tecla enter mientras el cursor este dentro de dicho textbox, se ejecute cierta funcion que funciona perfectamente.

Ya he googleado bastante para buscarle respuesta a este problema y aun no he podido conseguir algo concreto. He leido los temas de este foro de Javascript pero tampoco he conseguido solucion.

Aqui esta mi codigo:

Cita:
<head>
<script type="text/javascript">
function darle_enter(e){
if (event){
key=event.keyCode;
}else{
key=e.which;
}

if (key==13){
abrir_ventana();
}
}

</head>
<body>

<input type="text" id="buscar_texto" name="buscar_texto" onKeyPress="return darle_enter(event)" />

</body>


Nota: coloco onKeyPress con esas 2 letras en mayusculas porque si lo pongo en minusculas, en IE7 entra en la funcion darle_enter() pero en FF3 no entra en dicha funcion. Por eso uso onKeyPress y no onkeypress, para que la funciona sea llamada perfectamente por IE7 y FF3.

Por otra parte, me he dado cuenta que algunos han colocado en sus codigos algo como esto:

Cita:
if (navigator.appname=="netscape"){ key=e.which; }else{ key=event.keyCode; }
Me he dado cuenta que el:
- IE7 reconoce event.keyCode (todo mi codigo funciona bien aqui)
- FF3 NO reconoce event.keyCode ni e.which (mi codigo NO funciona aqui)
- Opera 9.27 reconoce event.keyCode en vez de e.which (todo mi codigo funciona bien aqui)
- Safari 3.1.2 reconoce event.keyCode en vez de e.which, aun cuando el navigator.appname es Netscape (todo mi codigo funciona bien aqui)

Espero una solucion a este engendro diabolico de problema.