2012-08-28 20 views
29

Quiero registrar eventos de keypress para un documento usando javascript.Cómo registrar el evento document.onkeypress

he utilizado:

document.attachEvent("onkeydown", my_onkeydown_handler); 

Funciona bien con IE, pero no con Firefox y Chrome.

También probé:

document.addEventListener("onkeydown", my_onkeydown_handler, true); 
// (with false value also) 

Pero todavía no funciona con Firefox y Chrome.

¿Hay alguna solución? ¿Me falta algo?

+0

puedo mostrar algo de código? – Phil

+0

[Respuesta posible aquí] (http://stackoverflow.com/questions/3763080/javascript-add-events-cross-browser-function-implementation-use-attachevent-add) – SuperSaiyan

Respuesta

54

que buscas:

EDIT:

Javas cripta:

document.addEventListener("keydown", keyDownTextField, false); 

function keyDownTextField(e) { 
var keyCode = e.keyCode; 
    if(keyCode==13) { 
    alert("You hit the enter key."); 
    } else { 
    alert("Oh no you didn't."); 
    } 
} 

DEMO: JSFIDDLE

+1

Quiero agregar evento al documento en sí –

+0

Editado el código .. @ NileshPethani –

2

El nombre de evento para addEventListener() es keydown, no onkeydown.

Además, debe conectar el controlador de eventos al elemento de activación, no al document.

7

Usted probablemente está buscando:

document.body.addEventListener('keydown', function (e) { 
    alert('hello world'); 
});​​​​​​​ 

pero es casi seguro que va a ser digno de su tiempo a utilizar una biblioteca existente de abstraer sobre los problemas de los muchos navegadores por ahí.

Cuestiones relacionadas