Cross-browser, problemi con la gestione degli eventi da tastiera

Discussione in 'Javascript' iniziata da ClaS, 29 Gennaio 2011.

Tag (etichette):
  1. ClaS

    ClaS Nuovo Utente

    Registrato:
    29 Gennaio 2011
    Messaggi:
    2
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Ciao a tutti,
    ho un problema con javascript e la gestione degli eventi provenienti da tastiera. Per semplificare al massimo io ho un semplice div al quale ho collegato una funzione javascript che gestisce gli eventi provenienti dalla tastiera. Semplicemente in base al tasto premuto stampo un alert differente. Il tutto funziona benissimo in Firefox, mentre in Internet Explorer (versione 8) e Google Chrome viene "intercettato" solo il tasto tab, mentre se premo le freccette non succede proprio nulla. Riporto di seguito il codice:

    <script>

    function optionKeyEvent(event){
    if (event.altKey) {
    alert("Hai premuto alt");
    return true;
    }

    else if(event.shiftKey){
    alert("Hai premuto shift");
    return true;
    }

    //se viene premuto TAB
    else if(event.keyCode == 9){
    alert("Hai premuto tab");
    return true;
    }

    //se viene premuta la freccia in basso
    else if (event.keyCode == event.DOM_VK_DOWN) {
    alert("Hai premuto freccia giu");
    return true;
    }

    //se viene premuta la freccia in alto
    else if (event.keyCode == event.DOM_VK_UP) {
    alert("Hai premuto freccia su");
    return true;
    }

    //se viene premuta la freccia a destra
    else if (event.keyCode == event.DOM_VK_RIGHT) {
    alert("hai premuto freccia destra");
    return true;
    }

    //se viene premuta la freccia a sinistra
    else if (event.keyCode == event.DOM_VK_LEFT) {
    alert("Hai premuto freccia sinistra");
    return true;
    }
    else {
    return true;
    }
    }
    </script>

    questo è lo script e questo la parte html:

    <div id="menuDiv">
    <div class="1" tabindex="0" id="fileMenu" onkeydown="return optionKeyEvent(event);">Menu 1</div>
    </div>

    Ho provato anche cambiando onkeydown con onkeypress ma le cose addirittura peggiorano perchè non viene intercettato nemmeno il tab. Qualcuno sa aiutarmi?
    Grazie mille
     
Sto caricando...

Condividi questa Pagina