2015-07-06 14 views
6

Quando si passa il layout della tastiera in ebraico e si preme un carattere, questo viene ricevuto nell'evento kepress così com'è. Ad esempio, facendo clic su ה (la chiave v), quindi e.which è 1492. Tuttavia, quando faccio una combinazione, la chiave è la chiave inglese. Così, per alt+הe.which è 86. Quindi, l'evento si presenta come alt+vcome gestire le pressioni dei tasti non in inglese

Questo è un dolore se voglio creare una funzione che accetta combinazioni di tasti e richiamate e registra i callback, ma mostra anche una documentazione dei callback, dal momento che se io registrati alt+ה, quindi quando premo la combinazione sembrerà alt+v e non corrisponderà alle combinazioni registrate. Ma se registro alt+v, la documentazione sarà scomoda.

Quindi la mia domanda si riduce a se uno dei seguenti è possibile:

  1. sapendo quale tasto in realtà è stato premuto (significato, sapendo che ה è stato premuto insieme alt e non v)
  2. mapping tra i caratteri ebraici (o qualsiasi altro non inglese) alle loro controparti inglesi fisiche, quindi quando la mia funzione riceve alt+ה la convertirà in alt+v per la ricerca di callback.

Naturalmente voglio qualcosa di generico, che funzionerà per qualsiasi lingua, non elencare solo l'alfabeto ebraico.

+1

Sebbene mal supportato, W3C ha una bozza di lavoro corrente (https://developer.mozilla.org/en-US/docs/Web/API/ KeyboardEvent/code) sull'argomento. –

+0

Anche se è solo un'ipotesi plausibile, ma forse uno degli strati sopra (tastiera, sistema operativo) rende questa conversione al volo prima ancora che raggiunga il browser, per consentire un'interfaccia coerente per operazioni comuni (copia, incolla, taglia, seleziona tutto , save, ecc.), che in realtà ha senso, quindi se trovi questo comportamento abbastanza coerente tra i sistemi, allora vai con la documentazione imbarazzante, e sii felice che non devi gestire tutte le tastiere di lingue. –

risposta

0
  1. Non ci si deve preoccupare se è alt- ה o alt-v, si desidera eseguire la stessa operazione su entrambi i casi.
  2. Se non è identificato, non è identificato da nessuna parte, quindi anche la tua funzione otterrà alt-v.
  3. se la funzione ottiene qualcosa ("Alt", "ה") è necessario creare un oggetto per la conversione. var conv = {'ה': 'v'; 'ש': 'a', ...}
Problemi correlati