2012-08-28 11 views
29

Desidero registrare eventi di pressione tasti per un documento utilizzando javascript.Come registrare l'evento document.onkeypress

ho usato:

document.attachEvent("onkeydown", my_onkeydown_handler); 

Funziona bene con IE, ma non con Firefox e Chrome.

Ho anche provato:

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

Ma ancora non funziona con Firefox e Chrome.

C'è una soluzione, mi manca qualcosa?

+0

Potete mostrare un po 'di codice? – Phil

+0

[Possibile risposta qui] (http://stackoverflow.com/questions/3763080/javascript-add-events-cross-browser-function-implementation-use-attachevent-add) – SuperSaiyan

risposta

54

siete alla ricerca di:

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

voglio aggiungere evento al documento stesso –

+0

Modificato il codice .. @ NileshPethani –

2

Il nome dell'evento per addEventListener() è keydown, non onkeydown.

Inoltre, è necessario associare il gestore eventi all'elemento di attivazione, non a document.

7

si sono probabilmente alla ricerca di:

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

ma è quasi certamente sarà pena il tempo di utilizzare una libreria esistente di astrarre per i problemi dei molti browser là fuori.