Nie ma wyboru najlepszego lub uniwersalnego modyfikatora klucza
Twoje najlepsze opcje to:
Nie używaj klawisza modyfikującego (tylko pojedyncze naciśnięcia klawiszy), a następnie przestań wykrywać naciśnięcia klawiszy, gdy kursor użytkownika znajdzie się w polu wprowadzania lub w polu tekstowym, podobnie jak Google ze skrótami Gmaila.
- lub -
Wybierz wartość domyślną, która odpowiada większości użytkowników na podstawie statystyk systemu operacyjnego z danych Analytics. Zezwalaj zaawansowanym użytkownikom, którzy chcą, aby skróty je aktywowały i zastępuj klawisz modyfikujący w ustawieniach użytkownika, w taki sam sposób, jak robi to oprogramowanie komputerowe.
- lub -
Użyj klawisza wyzwalającego zamiast klawisza modyfikującego. Rozważ ,2przejście na drugą kartę w obszarze nawigacji z kartami i ,3na przykład przejście do trzeciej. Kombinacja przecinka, po którym następuje bezpośrednio liczba, jest na tyle nietypowa, aby zmniejszyć prawdopodobieństwo konfliktów lub przypadkowych naciśnięć.
We wszystkich przypadkach można rozważyć domyślne wyłączenie klawiszy skrótu, aby zapobiec nieoczekiwanemu zachowaniu większości użytkowników, którzy prawdopodobnie nie dbają o klawisze skrótów.
Dlaczego nie wybrać kombinacji modyfikatora?
Powodem, dla którego sugeruję te metody, jest brak znormalizowanego wieloplatformowego klucza modyfikującego, który można uznać za bezpieczny w użyciu w JavaScript w środowisku przeglądarki. Wszystko zawierający Ctrl, Shift, Alt, lub Cmdprawdopodobnie będą łamać pewne skróty przeglądarki na niektórych platformach.
Na przykład Twoja sugestia użycia Ctrl+ Shiftspowoduje uszkodzenie skrótów Firefoksa w systemie Windows, z których wiele wykorzystuje tę kombinację do wykonywania specjalnych funkcji , takich jak Ctrl+ Shift+ D, która tworzy zakładki do wszystkich otwartych kart.
Producenci przeglądarek używają różnych skrótów do uruchamiania klawiszy dostępu na każdej platformie właśnie dlatego, że nie ma standardu dla różnych platform. Apple używa Ctrlna przykład Maca i AltWindowsa w Safari.
Co więcej, każda przeglądarka rozwiązuje konflikty skrótów inaczej, co doprowadzi do nieoczekiwanych konsekwencji dla użytkowników. Po powiązaniu naciśnięcia klawisza z funkcją w JavaScript, która ma również powiązanie jako natywny skrót przeglądarki ...
- Firefox uruchomi skrót JavaScript samodzielnie, jeśli wykonasz
return false;
funkcję JavaScript, a następnie skrót przeglądarki Firefox, jeśli Ty return true;
(tj. Będzie działał domyślnie oba).
- IE uruchomi funkcję JavaScript, a następnie skrót przeglądarki IE.
- Safari / Chrome / Opera przetworzy skrót przeglądarki, ale nie JavaScript.
[Źródło: uzupełnienie na stronie pliku Readme jquery.hotkeys Johna Resiga .]