Kombinasjon av Javascript Hurtigtaster

I noen web-applikasjoner, trykke på en enkelt hurtigtast eller en kombinasjon av hurtigtaster utløser en handling av programmet. Standard hurtigtaster inkluderer "Ctrl-X" for å flytte teksten til utklippstavlen, "Alt-F4" for å lukke et vindu og "Shift-F5" for å tvinge frem en fullstendig vindu oppdatering. Oppdager kombinasjonen av hurtigtaster som ble trykket i Javascript er mer komplisert enn man kunne forvente. Tidlig nettleserkrav ikke inkluderer detaljer som verdien som skal brukes i merking hver tast på tastaturet, og ulike selskaper brukes forskjellige verdier for de samme tastene. Mens du kan følge en anbefalt metode for å sjekke hurtigtaster som ble trykket, sjekk verdiene og forskjellen i verdier på tvers av nettlesere.

hurtigtaster

En hurtigtast er en nøkkel som utløser noen form for handling i et program når den presses. For eksempel kan et spill bruke "z" og "c" som hurtigtaster for å rotere et objekt til venstre og høyre. Noen programmer bruker en kombinasjon av hurtigtaster ved å kombinere standardalfanumeriske tegn med andre spesialtaster, for eksempel G "" og pil opp. Tre spesialtaster, "Ctrl", "Alt" og "Shift", brukes ofte sammen med kombinasjons hurtigtaster. For eksempel "Ctrl-S" brukes ofte som en kombinasjon hurtigtast for "Lagre". Kombinasjon hurtigtaster kan inneholde mer enn en spesiell nøkkel, som i "Ctrl-Alt-P."

Nøkkelkoder og Charcode

Hver utskriftsvennlig karakter har en numerisk ASCII-kode tildelt, kalt charcode. Hver tast på tastaturet har også en numerisk kode tildelt det som kalles en nøkkelkode. De to er ikke alltid det samme. For eksempel, liten "a" og stor "A" har ulike charcodes men har samme nøkkelkode. Ikke-utskrivbare tegn som opp- og ned-pilene ikke har en charcode i det hele tatt.

tastatur Hendelser

I Javascript, når en tast blir trykket, og det utløser en serie av hendelser. Javascript setter egenskapene til en hendelse objekt for å gi informasjon om hendelsen. En "keydown" hendelse som skjer når en tast trykkes ned og en "keyup" hendelsen utløses når nøkkelen slippes. Mens tasten holdes nede, er et "tastetrykk" event kontinuerlig utløst. I løpet av denne hendelsen, de fleste nettlesere gir charcode verdien av nøkkelen trykkes. Under en keydown eller keyup hendelse, de fleste nettlesere setter keycode verdien av nøkkelen som utløste hendelsen. For alle tre arrangementer, en ekstra egenskap kalt "som" er vanligvis satt til unicode verdien av-tasten nede, inkludert spesialtaster. De fleste nettlesere også satt tre flagss - ctrlKey, altKey og Skift-tast - indikerer nøkkelen som ble holdt nede når hendelsen sparken.

Nettleser Forskjeller

Valg av hendelsen og eiendom til bruk ved fastsettelse av kombinasjon av Javascript hurtigtaster som ble presset kan være en utfordring. Dessverre ikke alle nettlesere tolker eller gjennomføre leser spesifikasjoner identisk. Som et resultat, har Chrome, Firefox, Internet Explorer, Opera og Safari ikke utløse de samme hendelsene eller bruke de samme tegn sendes for hver tast. For eksempel Internet Explorer gir aldri charcode, bare nøkkelkoder. Firefox gir bare nøkkelkoder under tastetrykk og gir charcode for keydown og keyup. Nøkkelkoder for kolon nøkkelen er 59 i Firefox og 186 i Internet Explorer og Safari. De fleste av forskjellene, men eksisterer for nøkler annet enn "en" til "z", "A" til "Z", "0" til "9", "Ctrl", "Alt" og "Shift".

bestemme Hurtigtaster

Bruk en ekstern bibliotek som jQuery, Prototype, Dojo eller MooTools når du trenger å spore en kombinasjon av Javascript hurtigtaster som inkluderer spesielle taster, fordi disse bibliotekene generelt håndtere konverteringer mellom nettlesere og har et enkelt objekt eiendom referere til. For å bestemme hurtigtast som utløste hendelsen uten et bibliotek, bruk "tastetrykk" hendelse og sjekke "som" eiendom. Hvis denne egenskapen er null eller udefinert, sjekk "keycode" eiendom. Sammenligne denne verdien til verdien av din hurtigtast, sjekk ctrlKey, altKey og Skift-tast flagg, og avgjøre om kombinasjonen av Javascript hurtigtaster ble trykket.