Mam detektor zdarzeń w JavaScript, mogę stwierdzić, czy kluczowym wydarzeniem jest Ctrl (e.keyCode == 17)
, ale skąd mogę wiedzieć, że Ctrl pochodzi z prawej lub lewej?Jak sprawdzić, czy zdarzenie pochodzi z prawego klawisza Ctrl?
Odpowiedz
Nie sądzę, że kod klucza jest inny.
Możesz użyć numeru e.ctrlKey
, aby uzyskać lepszy sposób określenia, czy klawisz kontrolny został naciśnięty.
Wydaje się, że Flash can not tell which one is pressed (albo to, albo zakodowane niepoprawnie).
Są one wyabstrahowane. Na przykład. Mogę wybrać mnóstwo różnych opcji dla każdego z nich w ustawieniach mojej klawiatury Ubuntu. –
Możesz napisać oprogramowanie, które rozróżnia je na niskim poziomie, więc nie, nie można go wyodrębnić na poziomie sprzętu. Prawdopodobnie został jednak wyodrębniony na poziomie systemu operacyjnego. –
MSIE może rozróżniać lewy i prawy klawisz Ctrl, zobacz moją odpowiedź na ten temat. –
Po prostu krótka uwaga: Nie będę opierał architektury/projektu na dostępności odpowiedniego klawisza kontrolnego - wiele klawiatur laptopów może nie mieć dwóch klawiszy sterujących.
+1 w celu uzyskania przydatnych informacji. – alex
MSIE zapewnia właściwość ctrlLeft
dla większości zdarzeń. Wartości nieruchomości są:
true
jeśli lewy klawisz został naciśnięty w trakcie imprezyfalse
jeśli lewy klawisz nie został naciśnięty.
Można łączyć event.ctrlKey
i event.ctrlLeft
celu ustalenia, czy prawy klawisz Ctrl został naciśnięty:
if (event.ctrlKey) {
if (event.ctrlLeft) {
// left Ctrl key pressed
} else {
// right Ctrl key pressed
}
} else {
// no Ctrl key pressed
}
pamiętać, że obiekt w keyup
ctrlLeft
jest nieokreślona, ponieważ klawisz Ctrl nie jest wciśnięty dłużej.
Testowany w MSIE7 i MSIE9. Nie działa w Firefoksie.
Aby uzyskać szczegółowe informacje, patrz http://help.dottoro.com/ljqlvhuf.php.
Niezbyt przydatne niestety, jeśli jest to tylko IE. – alex
Jeśli prześledzić ją znajdziesz ten sam klucz jest używany dla obu (17) .. Myślę, że to nie jest możliwe rozróżnienie
Nie wiem, czy to było dostępne, gdy ten został poproszony, ale możesz można odróżnić lewy od prawego-ctrl, a także alt i shift. Możesz teraz użyć właściwości KeyboardEvent.DOM_KEY_LOCATION_ *, aby wprowadzić to rozróżnienie.
Zobacz Can javascript tell the difference between left and right shift key?
Należy pamiętać jednak, odkryłem, że Chrome wydaje się mieć wady w jego realizacji. Zobacz How can I distinguish left- and right- shift, ctrl, and alt keys onkeyup in Chrome with Javascript
Jest event.location
nieruchomość dla lewego klawisza ctrl będzie to 1 dla słuszna 2, można sprawdzić na obsługę przeglądarki canIuse
if (e.which == 17) {
if (event.location == 1) {
// left ctrl key
} else if (event.location == 2) {
// right ctrl key
}
}
- 1. Jak złapać zdarzenie CTRL + mouseWheel z InputMap
- 2. Jak sprawdzić, czy Żądanie pochodzi z serwera proxy?
- 3. Jak sprawdzić, czy klasa B pochodzi z rodziny szablonów klas
- 4. Jak sprawdzić, czy NSURLResponse pochodzi z pamięci podręcznej?
- 5. Anuluj Zdarzenie przyciśnięcia klawisza
- 6. Korzystanie z automatycznego klawisza skrótu do zmiany Ctrl i Alt oraz zaimplementowania klawisza Ctrl
- 7. Zdarzenie zatrzymania naciśnięcia klawisza
- 8. Dlaczego funkcja TEdit.OnChange jest uruchamiana po naciśnięciu klawisza Ctrl + A?
- 9. Jak mogę złapać zdarzenie ctrl-c? (C++)
- 10. Jak sprawdzić, czy naciśnięto klawisz modyfikujący (shift, ctrl, alt)?
- 11. Jak słuchać naciśnięcia klawisza Ctrl-P w JavaScript?
- 12. Zdarzenie klawisza tabulacji pożaru w JavaScript?
- 13. Jak stwierdzić, czy zdarzenie pochodzi z danych wprowadzonych przez użytkownika w języku C#?
- 14. Mac Cocoa: Jak rozróżnić, czy zdarzenie NSScrollWheel pochodzi od myszy czy gładzika?
- 15. Jak mogę sprawdzić, czy obraz zwrócony z didFinishPickingMediaWithInfo pochodzi z aparatu lub albumu fotograficznego?
- 16. klawisz Ctrl przechowywane w dół po symulację klawisz Ctrl klucz zdarzeń i ctrl się zdarzenie
- 17. jak sprawdzić, czy zdarzenie "ładowanie" okna zostało uruchomione już
- 18. Czy istnieje sposób na rozróżnienie między naciśnięciem lewego i prawego klawisza Shift?
- 19. JavaScript - jak sprawdzić, czy zdarzenie już zostało dodane?
- 20. Aplikacja konsoli za pomocą schowka.GetFileDropList: jak sprawdzić, czy pochodzi z operacji wycinania lub kopiowania?
- 21. Zaznaczanie wielu elementów w JList bez użycia klawisza Ctrl/Command
- 22. nie można ustawić mapy klawiszy dla klawisza Ctrl-;
- 23. Sprawdź, czy połączenie IPN pochodzi z systemu PayPal?
- 24. Zdarzenie click jQuery - Jak sprawdzić, czy kliknięto myszą lub naciśnięto klawisz Enter?
- 25. Czy mogę obsłużyć zdarzenie prawego przycisku myszy na elemencie HTML <button />?
- 26. Naciskanie klawisza (keydown) z jQuery
- 27. Jak ustalić, czy wymagany moduł pochodzi z klejnotu, czy też był modułem podstawowym?
- 28. iOS NSNotificationCenter, aby sprawdzić, czy aplikacja pochodzi z tła na pierwszym planie
- 29. Jak sprawdzić, czy klawisz Insert został przytrzymany?
- 30. Szerokość prawego obramowania SVG
nie można. Przepraszam. Czuję twój ból. – zzzzBov