| Passo 7: tastiera |
|
|
| Articoli tecnici - Sviluppo & sistema | |||
| Scritto da Riccardo Zorn | |||
| Martedì 28 Ottobre 2008 13:54 | |||
|
A questo punto proviamo ad usare il nostro message box, e ci accorgiamo che non reagisce affatto alla tastiera. Collegare gli eventi Il mio obiettivo è quello di catturare l'input da tastiera mentre la finestra è visualizzata, e ripristinare l'eventuale handler precedente quando l'utente chiude la finestra. Per prima cosa connetto l'handler insieme alle funzioni dei pulsanti: _msgBox.prototype.collegaEventi = function (aCallbackFunction) Questo mi connetterà l'evento ogni volta che c'è almeno un bottone. E imposterà oldKeyPressHandler al gestore precedente. La funzione di callback è ora divisa tra interpretazione del messaggio (buttonclick e keypress) ed elaborazione: _msgBox.prototype.handleCallback = function(aMsgResult) Qui riassegno il gestore originale dell'evento tastiera. Gestire gli eventi La funzione di gestione del mouse quindi, usando la nuova callback generica, diventa:_msgBox.prototype.buttonEvent = function(e) Notare che non uso this.handleCallback ma msgBox.handleCallback perché dall'interno di un handler di evento non posso accedere all'oggetto originale. Anche nel caso di interpretazione del comando da tastiera i browser si comportano in maniera diversa: quindi la funzione handleKeyboard() dovrà: _msgBox.prototype.handleKeyboard = function(e) Altra nota curiosa alla sintassi: IE supporta case 13,32,115: Ma firefox no. I file descritti in questo articolo si possono scaricare dall'introduzione
|
|||
| Ultimo aggiornamento Martedì 28 Ottobre 2008 15:44 |

