2011-01-04 4 views

Antwort

3

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).

+0

Sie sind abstrahiert. Z.B. Ich kann für jede von ihnen eine Menge verschiedener Optionen in meinen Ubuntu Keyboard Einstellungen wählen. –

+0

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. –

+0

MSIE kann die linke und rechte Strg-Taste unterscheiden, siehe meine Antwort zu diesem Punkt. –

6

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

+1 für nützliche Informationen. – alex

1

MSIE bietet eine ctrlLeft Eigenschaft für die meisten Ereignisse. Die Eigenschaftswerte sind:

  • true wenn die linke Taste während der Veranstaltung
  • false, 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.

+0

Nicht sehr nützlich, wenn es nur IE ist. – alex

1

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,

1

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

1

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

überprüfen
if (e.which == 17) { 
    if (event.location == 1) { 
     // left ctrl key 
    } else if (event.location == 2) { 
     // right ctrl key 
    } 
} 
Verwandte Themen