Ich habe einen Event-Listener in Javascript, kann ich sagen, ob ein Schlüsselereignis ist Ctrl (e.keyCode == 17)
, aber woher weiß ich, dass diese Ctrl kommt von der rechten oder linken?Wie kann ich feststellen, ob ein Ereignis von der rechten Strg-Taste kommt?
Antwort
Ich glaube nicht, dass der keyCode anders ist. Sie können e.ctrlKey
verwenden, um festzustellen, ob die Steuertaste gedrückt wurde.
Es scheint Flash can not tell which one is pressed entweder (entweder das oder falsch codiert).
Sie sind abstrahiert. Z.B. Ich kann für jede von ihnen eine Menge verschiedener Optionen in meinen Ubuntu Keyboard Einstellungen wählen. –
Sie können definitiv Software schreiben, die zwischen den beiden auf einer niedrigen Ebene unterscheidet, also nein, es kann nicht auf der Hardware-Ebene abstrahiert werden. Es ist wahrscheinlich auf Betriebssystemebene abstrahiert. –
MSIE kann die linke und rechte Strg-Taste unterscheiden, siehe meine Antwort zu diesem Punkt. –
Nur eine kurze Anmerkung: Ich würde eine Architektur/Design nicht auf die Verfügbarkeit der richtigen Steuerschlüssel basieren - viele Laptop-Tastaturen haben möglicherweise nicht zwei Steuerschlüssel.
+1 für nützliche Informationen. – alex
MSIE bietet eine ctrlLeft
Eigenschaft für die meisten Ereignisse. Die Eigenschaftswerte sind:
true
wenn die linke Taste während der Veranstaltungfalse
, wenn die linke Taste gedrückt wurde nicht gedrückt wurde.
können Sie kombinieren event.ctrlKey
und event.ctrlLeft
zu bestimmen, ob die rechte Strg-Taste gedrückt wurde:
if (event.ctrlKey) {
if (event.ctrlLeft) {
// left Ctrl key pressed
} else {
// right Ctrl key pressed
}
} else {
// no Ctrl key pressed
}
Beachten Sie, dass die ctrlLeft
Eigenschaft in einem keyup
nicht definiert ist, weil die Strg-Taste nicht mehr gedrückt wird.
Getestet unter MSIE7 und MSIE9. Funktioniert nicht unter Firefox.
Weitere Informationen finden Sie unter http://help.dottoro.com/ljqlvhuf.php.
Nicht sehr nützlich, wenn es nur IE ist. – alex
Wenn Sie es zurückverfolgt werden Sie die gleichen Schlüssel zu finden ist für beide verwendet (17) .. Ich denke, dass es nicht möglich ist,
Ich weiß nicht, zu unterscheiden, wenn es verfügbar war, als dieser gefragt wurde, aber Sie können unterscheiden links-von rechts-Strg, sowie Alt und Shift. Sie können jetzt die KeyboardEvent.DOM_KEY_LOCATION_ * -Eigenschaften verwenden, um diese Unterscheidung vorzunehmen.
Siehe Can javascript tell the difference between left and right shift key?
sich aber bewusst sein, entdeckte ich, dass Chrome einen Fehler bei der Umsetzung zu haben scheint. Siehe How can I distinguish left- and right- shift, ctrl, and alt keys onkeyup in Chrome with Javascript
Es gibt event.location
Eigenschaft für die linke Strg-Taste es 1 für 2 richtige sein wird, Sie Browser-Unterstützung auf canIuse
if (e.which == 17) {
if (event.location == 1) {
// left ctrl key
} else if (event.location == 2) {
// right ctrl key
}
}
- 1. Wie kann ich feststellen, ob ein Ereignis von einer Benutzereingabe in C# kommt?
- 2. Wie kann man feststellen, ob ein Methodenaufruf von der Testklasse
- 3. Wie kann ich feststellen, ob ein Browser ein Popup blockiert?
- 4. Wie kann ich feststellen, ob ich ein Speicherleck habe?
- 5. Wie kann ich feststellen, welche Arbeitsmappe ein Ereignis ausgelöst hat?
- 6. Wie kann ich feststellen, ob ein Benutzer von der Tastatur abwesend ist?
- 7. Wie kann ich feststellen, ob ein Realm erfolgreich aktualisiert wurde?
- 8. Wie kann ich feststellen, ob ein BPM-Prozess erfolgreich war?
- 9. Wie kann ich feststellen, ob ein Paket RTP/RTCP ist?
- 10. Wie kann ich programmgesteuert feststellen, ob ein "touchUpInside" -Ereignis aufgetreten ist?
- 11. Wie kann ich feststellen, ob ein `NSManagedObject` gelöscht wurde?
- 12. Wie kann ich feststellen, ob ein MySQL-Prozess blockiert ist?
- 13. Wie kann ich feststellen, ob ein Bild photoshopped wurde?
- 14. Wie kann ich feststellen, ob ein Unterverzeichnis in C# existiert?
- 15. Wie kann ich feststellen, ob ein Dataset zFS ist
- 16. Wie kann ich feststellen, ob in Python ein Kind existiert?
- 17. Wie kann ich feststellen, ob ein Popup vollständig geladen wurde?
- 18. Wie kann ich feststellen, ob ein Benutzer angemeldet ist?
- 19. Wie kann ich feststellen, ob ein Polyeder konvex ist?
- 20. Wie kann ich feststellen, ob ein Webclient Werbung blockiert?
- 21. Wie kann ich feststellen, ob ein Ereignis im Vollkalender aktualisiert wurde?
- 22. Wie kann ich feststellen, ob ein Prozess beendet wurde?
- 23. Wie kann ich feststellen, ob eine Funktion ein Diagramm generiert
- 24. Wie kann ich feststellen, ob ein Pthread am Leben ist?
- 25. Wie kann ich feststellen, ob ein UILabel berührt wurde?
- 26. Wie kann ich feststellen, ob ein ActiveX-Steuerelement geladen ist?
- 27. Kann ich feststellen, ob ein beliebiger CSS-Übergang gestartet wurde?
- 28. Wie kann ich feststellen, ob der Benutzer den Datagridview scrollt?
- 29. Wie kann ich feststellen, ob ein Selektor null zurückgibt?
- 30. Wie kann ich feststellen, ob ein Outlook-Ordner öffentlich ist?
Sie können nicht. Es tut mir Leid. Ich fühle deinen Schmerz. – zzzzBov