Foros del Web » Programando para Internet » Javascript »

Leer teclado con Firefox

Estas en el tema de Leer teclado con Firefox en el foro de Javascript en Foros del Web. Muy buenas! Tengo este script: Código HTML: <input type= "text" value= "" onkeypress= "a()" /> Código: function a() { if (window.event.keyCode == 13) { //CODIGO ...
  #1 (permalink)  
Antiguo 12/02/2011, 18:20
 
Fecha de Ingreso: diciembre-2005
Ubicación: BCN
Mensajes: 165
Antigüedad: 18 años, 3 meses
Puntos: 2
Leer teclado con Firefox

Muy buenas!
Tengo este script:

Código HTML:
<input type="text" value="" onkeypress="a()" /> 
Código:
function a()
{
	if (window.event.keyCode == 13) 
	{
		//CODIGO
	}
}
El problema es que en Chrome me funciona estupendamente, cada vez que pulso "intro" me ejecuta la funcion pero en Firefox no hay manera de que funcione.

Y luego la segunda cuestión:
Hay manera de leer una tecla tanto en firefox como chorme sin necesidad de un evento onkeyprees de un input?
Es decir, cuando pulse una tecla, este donde este de la web, que se ejecute una funcion...

Me gustaría que fuese posible ya que sin este codigo, mi web no funcionará al 100%

Muchas gracias!
  #2 (permalink)  
Antiguo 12/02/2011, 18:32
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 9 meses
Puntos: 310
Respuesta: Leer teclado con Firefox

Prueba así:
Código Javascript:
Ver original
  1. var tecla = event.keyCode ? event.keyCode ? event.which;
Y para agregar el evento a la página entera, podrías usar algo así:
Código Javascript:
Ver original
  1. document.onkeydown=function(){
  2. //...
  3. }
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 12/02/2011, 18:44
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 14 años, 11 meses
Puntos: 1485
Respuesta: Leer teclado con Firefox

buenas...

sobre la primera cuestion, sucede que estas leyendo del objeto event desde el lugar incorrecto. o sea, en el modelo estandar, dicho objeto se recibe como un argumento en el handler (handler, la funcion registrada al evento). el modelo que estas usando es propio de iexplorer. el hecho que te funcione en chrome supongo que es simplemente como medida de compatibilidad, por supuesto, de parte de google. por eso en firefox no te funciona. ¿que debes hacer? al invocar la funcion a le pasas como parametro el objeto event. no estoy seguro si es estandar pero segun la documentacion que he leido, el argumento recibido en la funcion del handler automaticamente recibe el nombre event. iexplorer, aunque no sigue este modelo, recibira como argumento el objeto event definido en el ambito global (window) por lo que no debe dar problema al utilizar el nombre event cuando invoques la funcion a. luego, en tu funcion a, debes definir un parametro para poder hacer uso del objeto event y desde ese paremtro lees las propiedades de interes.

sobre el segundo asunto, el evento lo puedes registrar practicamente sobre cualquier elemento. mientras mas alto en la jerarquia, mas efecto tendra en el documento completo. o sea, si lo registras en <body>, el evento se producira en cualquier parte que se encuentre el usuario.



edit: me gano cronos! ademas de que tarde mucho en escribir.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 12/02/2011 a las 18:51
  #4 (permalink)  
Antiguo 12/02/2011, 18:53
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 9 meses
Puntos: 310
Respuesta: Leer teclado con Firefox

Cita:
Iniciado por zerokilled Ver Mensaje
edit: me gano cronos! ademas de que tarde mucho en escribir.
Pero siempre son mejores tus repuestas, lo bueno se hace esperar
Saludos!
PD: ¿Y esa firma? XD
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red

Última edición por _cronos2; 12/02/2011 a las 18:59
  #5 (permalink)  
Antiguo 13/02/2011, 12:55
 
Fecha de Ingreso: septiembre-2010
Mensajes: 525
Antigüedad: 13 años, 6 meses
Puntos: 59
Cita:
Iniciado por _cronos2 Ver Mensaje
PD: ¿Y esa firma? XD
Creo que significa:
soy bondadoso! quieres karma?
(hexadecimal)

__________________
01011111 01000001 01100100 01110010 01101001 01100001 01101110 01011111
  #6 (permalink)  
Antiguo 13/02/2011, 13:08
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 14 años, 11 meses
Puntos: 1485
Respuesta: Leer teclado con Firefox

me daÑaron el juego, ahora no puedo regalar mas premios.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 13/02/2011, 13:11
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 9 meses
Puntos: 310
Respuesta: Leer teclado con Firefox

Cita:
Iniciado por zerokilled Ver Mensaje
me daÑaron el juego, ahora no puedo regalar mas premios.
Jajajaja pobre, habrá que inventarse otro XD
Saludos :D
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #8 (permalink)  
Antiguo 14/02/2011, 12:46
 
Fecha de Ingreso: diciembre-2005
Ubicación: BCN
Mensajes: 165
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Leer teclado con Firefox

Muy buenas chicos!
Perdon por mi ausencia :D

Veamos, llamadme corto, pero no acabo de entender la explicacion...a pesar de ser extensa y bien redactada, me pierdo...

no se bien bien que tengo que hacer

ahora mismo hago esto:

<onkeypress="a(event)">

function a(event){
var tecla = event.keyCode ? event.keyCode ? event.which;
alert(tecla);

No me ejecuta el alert! Se que estoy haciendo cosas mal, pero he probado varias combinaciones y nada de nada...
A ver si podeis darme un último empujon en forma de codigo...si puede ser eh! :D

Gracias chicos!
}
  #9 (permalink)  
Antiguo 14/02/2011, 12:48
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 9 meses
Puntos: 310
Respuesta: Leer teclado con Firefox

Cita:
Iniciado por pekpon Ver Mensaje
var tecla = event.keyCode ? event.keyCode ? event.which;
Confunces ? con :
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #10 (permalink)  
Antiguo 14/02/2011, 12:58
 
Fecha de Ingreso: diciembre-2005
Ubicación: BCN
Mensajes: 165
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Leer teclado con Firefox

wow, que rapidez!
ahora mismo hago esto:
Código HTML:
Ver original
  1. <input type="text" name="valor" value="" id="valor" onkeypress="intro(event)"/>

Código Javascript:
Ver original
  1. function intro(event)
  2. {
  3.     var tecla = event.keyCode ? event.keyCode : event.which;
  4.     alert(tecla);
  5. }

o esto:

Código HTML:
Ver original
  1. <input type="text" name="valor" value="" id="valor" onkeypress="intro()"/>

Código Javascript:
Ver original
  1. function intro()
  2. {
  3.     var tecla = event.keyCode ? event.keyCode : event.which;
  4.     alert(tecla);
  5. }

pero ninguno de los dos funciona, en chrome si que funciona el segundo.
Un saludo
  #11 (permalink)  
Antiguo 14/02/2011, 13:27
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 9 meses
Puntos: 310
Respuesta: Leer teclado con Firefox

Prueba poniéndolo así:
Cita:
function intro(e) ...
Cambiando todos los events de dentro de la función por e, pero luego al llamar la función le pasas como argumento event.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #12 (permalink)  
Antiguo 14/02/2011, 13:28
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 14 años, 11 meses
Puntos: 1485
Respuesta: Leer teclado con Firefox

sea lo que este sucediendo debe ser en otro lado porque a mi me funciona el primer ejemplo en firefox.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #13 (permalink)  
Antiguo 14/02/2011, 13:32
 
Fecha de Ingreso: diciembre-2005
Ubicación: BCN
Mensajes: 165
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Leer teclado con Firefox

mmmmhhhhhh...sigue sin funcionar....chorme SI, firefox NO, con:

onkeypress="intro(event)" -> function intro(e){ tecla = e.key.....}

alguna idea de algo que me lo haga fallar?
  #14 (permalink)  
Antiguo 14/02/2011, 13:34
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 9 meses
Puntos: 310
Respuesta: Leer teclado con Firefox

¿Será que hay algo en la función que da error?
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #15 (permalink)  
Antiguo 14/02/2011, 13:52
 
Fecha de Ingreso: diciembre-2005
Ubicación: BCN
Mensajes: 165
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Leer teclado con Firefox

en la funcion no hay mas que lo que muestro....

function intro(e){ alert("hola");}
esto funciona. a la que meto ya keycode y demás....no funciona...
  #16 (permalink)  
Antiguo 14/02/2011, 13:56
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 9 meses
Puntos: 310
Respuesta: Leer teclado con Firefox

A mí también me funciona tanto en FF como en Chrome:
Cita:
<script>
function intro(e)
{
var tecla = e.keyCode ? e.keyCode : e.which;
alert(tecla);
}
</script>
<input type="text" name="valor" value="" id="valor" onkeypress="intro(event)" />
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #17 (permalink)  
Antiguo 14/02/2011, 14:03
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 9 meses
Puntos: 1012
Respuesta: Leer teclado con Firefox

mas de lo mismo tecla = (e) ? e.keyCode : e.which;. cuando la lógica falla prueba lo ilógico. cambia el evento onkeypress por onkeyup o onkeydown
  #18 (permalink)  
Antiguo 16/02/2011, 12:53
 
Fecha de Ingreso: diciembre-2005
Ubicación: BCN
Mensajes: 165
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Leer teclado con Firefox

Cita:
Iniciado por IsaBelM Ver Mensaje
cuando la lógica falla prueba lo ilógico. cambia el evento onkeypress por onkeyup o onkeydown
Grandeeeeee!!!! Probando el codigo de cronos y poniendo onkeydown FUNCIONA!!!

que alivio menos mal!

Ahora la pregunta es: Como llamo a este evento pulsando sobre cualquier parte de la pagina, y no estando sobre un input con el parametro onkeydown?

Gracias a todos!!!
  #19 (permalink)  
Antiguo 16/02/2011, 13:20
 
Fecha de Ingreso: diciembre-2005
Ubicación: BCN
Mensajes: 165
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Leer teclado con Firefox

Lo acabo de encontrar!
Me autorespondo para si a alguien le sirve de ayuda:

$(window).keydown(function(event){
intro(event);
});

Gracias a todos!!!!!!!

Etiquetas: firefox, teclado
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 20:30.