I noen webprogrammer , trykke på en enkelt hurtigtast eller en kombinasjon av hurtigtaster utløser en handling av programmet. Standard hurtigtaster inkluderer "Ctrl -X " for å flytte tekst til utklippstavlen, "Alt- F4 " for å lukke et vindu og "Shift - F5 " for å tvinge en full vindu refresh . Oppdager kombinasjonen av hurtigtaster som ble trykket i JavaScript er mer komplisert enn man kunne forvente . Tidlig webleserkravene ikke inkludere detaljer som verdien til bruk i merking hver tast på tastaturet , og ulike selskaper brukt forskjellige verdier for de samme tastene . Mens du kan følge en anbefalt tilnærming for å sjekke hurtigtaster som ble trykket , kontrollere 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 trykkes . For eksempel kan et spill bruker "z " og " c" som hurtigtaster for å rotere et objekt til venstre og høyre . Noen programmer bruker en kombinasjon av hurtigtaster ved å kombinere standard alfanumeriske tegn med andre spesialtaster , for eksempel G " " og pil opp . Tre spesielle taster , "Ctrl ", " Alt" og "Shift ", brukes ofte med kombinasjon hurtigtaster. For eksempel , "Ctrl - S " er ofte brukt som en kombinasjon hurtigtast for " Lagre". Kombinasjon hurtigtaster kan inkludere mer enn én spesiell nøkkel , som i " Ctrl -Alt- P . "
Keycode og Charcode
Hvert tegn som har et numerisk ASCII kode tilordnet , kalt charcode . Hver tast på tastaturet har også en tallkode tildelt det som kalles en keycode . De to er ikke alltid den samme. For eksempel liten " a" og store bokstaver "A" har ulike charcodes men har samme keycode . Ikke- utskrivbare tegn som opp-og ned-pilene ikke har en charcode i det hele tatt .
Tastaturet hendelser
I JavaScript , når en tast er trykket, og det utløser en serie av hendelser . JavaScript setter egenskapene til en hendelse objekt for å gi informasjon om hendelsen . A " keydown " hendelse skjer når en tast trykkes ned og en " keyup " hendelsen utløses når tasten slippes. Mens tasten holdes nede , er et " tastetrykk " hendelse stadig utløst . I løpet av denne hendelsen , de fleste nettlesere gir charcode verdien av nøkkelen blir trykket . Under en keydown eller keyup hendelse, satt de fleste nettlesere nøkkelkoder verdien av nøkkelen som utløste hendelsen . For alle tre arrangementene , en ekstra egenskap kalt "som " settes vanligvis til unicode verdien av tasten inne , inkludert spesielle nøkler . De fleste nettlesere har også satt tre flagss - ctrlKey , altKey og Skift-tast - indikerer nøkkelen som ble holdt nede når hendelsen sparken
Browser Forskjeller
Velge hendelsen. og eiendom til bruk i å bestemme kombinasjonen av JavaScript hurtigtaster som ble trykket kan være en utfordring . Dessverre ikke alle nettlesere tolke og iverksette nettleserens spesifikasjoner identisk . Som et resultat, Chrome , Firefox , Internet Explorer , Opera og Safari ikke utløse de samme hendelsene eller bruke de samme tastekodar for hver tast . For eksempel gir Internet Explorer aldri charcode , bare keycode . Firefox gir bare keycode 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 . Mesteparten av forskjellene , men eksisterer for andre taster enn "a" 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 kombinasjonen av JavaScript hurtigtaster som inkluderer spesielle taster , fordi disse bibliotekene generelt håndtere konverteringer mellom nettlesere og har et enkelt objekt eiendom til referanse. Å bestemme hurtigtast som utløste hendelsen uten bibliotek, bruke " tastetrykk " hendelse og sjekk "som " eiendom . Hvis denne egenskapen er null eller udefinert , sjekk " keycode " eiendom . Sammenligne denne verdien til verdien av hurtigtast din , sjekk ctrlKey , altKey og Skift-tast flagg , og avgjøre om kombinasjonen av JavaScript hurtigtaster ble trykket .