Jakie są kody kluczowe JavaScript? [Zamknięte]

82

Jakie kody klawiszy są dostępne dla JavaScript? Jeśli nie są takie same dla wszystkich przeglądarek, podaj kody klawiszy dla każdej przeglądarki.

Projektant stron internetowych
źródło
Więc kompletnie chcesz polubić całą gamę Unicode? Powinieneś sprecyzować, co rozumiesz przez „kompletny”.
Jakub Hampl,
Przez pełne mam na myśli wszystkie numery kodów klucza. Podane przeze mnie przykłady podają liczby 8,9,13,16,17 ... Pomijam więc niektóre liczby.
Web_Designer,
3
Uważam, że istnieje policzalna liczba znaków, do których przypisane są kody JavaScript.
Web_Designer,
7
Dlaczego nie stworzyć samodzielnie takiej tabeli za pomocą JavaScript?
pimvdb
1
@pimvdb Skorzystałem z Twojej rady! stackoverflow.com/a/14905611/552067
Web_Designer

Odpowiedzi:

59

KeyCodes różnią się od wartości ASCII. Pełne odniesienie do kodu klucza można znaleźć pod adresem http://unixpapa.com/js/key.html

Na przykład cyfry numeryczne mają kody 96–105, co odpowiada początkowi małej litery w kodzie ASCII. Może to prowadzić do problemów w walidacji danych liczbowych.

user736373
źródło
2
Strona, do której prowadzi link, nie zawiera pełnego odniesienia. Odpowiednio wyjaśnia, że ​​kody klawiszy zależą od klawiatury, a znaczenie kodów lub kombinacji kodów klawiszy zależy od oprogramowania, które je interpretuje. Więc nie może być pełnej listy.
Jukka K. Korpela
9
http://www.javascriptkeycode.com zawiera wygodny generator kodu klucza, którego ostatnio używałem do testowania różnych kombinacji klawiszy.
Raz Wilson,
30

Obserwowani @ poradę pimvdb za i stworzył własną rękę:

http://daniel-hug.github.io/characters/

Bądź cierpliwy, ponieważ wygenerowanie elementu dla każdego z 65536 znaków, które mają kod JavaScript zajmuje kilka sekund.

Projektant stron internetowych
źródło
13
Okropna strona, za każdym razem powoduje awarię przeglądarki. Nie używaj tego!
Florian Leitgeb
@Floeee Przepraszamy, obecnie generuje wiersz tabeli dla wszystkich 65536 znaków z kodem javascript. Robi to bardzo wydajnie, ale nadal zajmuje to 10-20 sekund. Mógłbym to zmienić, aby ładował 1000 tylko na początek, a potem więcej na żądanie. Odpowiedź zredagowana w celu wyjaśnienia.
Web_Designer,
Dlaczego nie wyświetlasz prostego komunikatu tekstowego na początku strony, wyjaśniającego to?
Jared
4
Bardziej trafne może być stwierdzenie „trwa 10–20 sekund, aby nieodwracalnie zawiesić przeglądarkę, dopóki nie zakończysz procesu”.
Dissident Rage
4
To są charCodes, a nie keyCodes. Kody kluczy są wymienione w sekcji 3.3 na unixpapa.com/js/key.html
Semra
19

Potrzebowałem czegoś takiego do interfejsu konfiguracji sterowania grą, więc skompilowałem listę standardowych kodów klawiszy układu klawiatury w USA i odwzorowałem je na ich odpowiednie nazwy klawiszy.

Oto skrzypce zawierające mapę kodu -> nazwa i odwrotnie: http://jsfiddle.net/vWx8V/

Jeśli chcesz obsługiwać inne układy klawiszy, musisz zmodyfikować te mapy, aby dostosować je osobno.

Dzieje się tak, chyba że szukałeś listy wartości kodów klucza, które zawierałyby znaki kontrolne i inne wartości specjalne, których nie można (lub rzadko) można wprowadzić za pomocą klawiatury i mogą znajdować się poza zakresem zdarzeń keydown/ keypress/ keyupJavaScript. Wiele z nich to znaki sterujące lub znaki specjalne, takie jak null( \0) i najprawdopodobniej ich nie potrzebujesz.

Zauważ, że liczba klawiszy na pełnej klawiaturze jest mniejsza niż wiele wartości kodów klawiszy.

Zręczny
źródło
jeszcze jedno podziękowanie. posiadanie ich już w obiektach to przyjemna oszczędność czasu.
charlie roberts
Kiedy naciskam prawy przycisk + cmd na moim Macu, zwraca prawy przycisk myszy?
sierpień
8

http://keycodes.atjayjo.com/

Ta aplikacja jest po prostu niesamowita. Zasadniczo jest to klawiatura wirtualna, która natychmiast pokazuje kod klawisza wciśnięty na standardowej klawiaturze amerykańskiej.

jiminikiz
źródło
4
Pomimo wysiłków PO, aby kontynuować. To jest po prostu niesamowite!
Sealocal
1

Po uruchomieniu tego fragmentu zostanie podana jedna możliwa odpowiedź.

document.write('<table>')
for (var i = 0; i < 250; i++) {
  document.write('<tr><td>' + i + '</td><td>' + String.fromCharCode(i) + '</td></tr>')
}
document.write('</table>')
td {
  border: solid 1px;
  padding: 1px 12px;
  text-align: right;
}
table {
  border-collapse: collapse;
}
* {
  font-family: monospace;
  font-size: 1.1em;
}

fiatjaf
źródło
2
To nie są kody, to kody znaków. To jest inne
Lukas Eder