Die Taste e.metaKey finden Sie in JavaScript MouseEvent?
MouseEvent.metaKey
scheint nicht zu funktionieren. Auf FireFox und Chrome, gibt es false
auch wenn ich halten Sie die Gewinnen - Taste beim klicken:
HTML:
<!doctype html>
<button onclick=alert(event.metaKey)>click while holding "meta key"</button>
MDN Staaten:
Den
MouseEvent.metaKey
nur-lese-Eigenschaft zurückgeben einerBoolean
, dass
zeigt an, ob die Meta - Taste gedrückt wurde (true
) oder nicht (false
), wenn die
event eingetreten ist.Hinweis: Auf Macintosh-Tastaturen, dies ist die command-Taste (⌘). Auf Windows
Tastaturen, dies ist die windows-Taste (⊞).Browser-Kompatibilität
MDN Ansprüche MouseEvent.metaKey
unterstützt FireFox und Chrome, aber es funktioniert nicht.
Welche Taste macht MouseEvent.metaKey
finden?
Warum ist der obige code nicht funktioniert?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie Fragen, welche Taste Sie würden drücken müssen, um auf einem Windows-system, um für die
MouseEvent
'smetaKey
Eigenschafttrue
, die Antwort ist, dass es hängt von dem browser. Und einige Windows-Browser einfach nicht unterstützen und immer wiederfalse
oderundefined
.Konnte ich nicht finden, eine up-to-date-Grafik der browser-Unterstützung für
metaKey
, obwohl es ein wirklich alten an QuirksMode.org.Wenn Sie mit jQuery,
metaKey
ist eine der Eigenschaften von Ereignis, dass es normalisiert für cross-browser-Kompatibilität.Wenn Sie implementieren müssen, um eine Taste + Maus-Ereignis für einige Funktionen auf Ihrer website, würde ich die Shift - Taste, so dass es funktioniert auf allen Systemen. (Wenn Sie mehr brauchen als eine wichtige Möglichkeit, ich schlage vor, Sie überdenken Ihren Entwurf.)
Empirische Test zeigt die folgenden Ergebnisse. Nicht, dass jQuery nicht ein furchtbar guter job der Normalisierung ^F.
Auf einem Mac in Safari Version 5.1.7 & 6.0.
Auf dem Mac in Firefox 15.0.1:
Auf einem Mac im Google Chrome 18.0.1024.168:
Test-code:
//jquery-1.7.2
true
?Es bezieht sich auf die windows-Taste und die
Wegen einer bug als mindestens Firefox-48, siehe die docs für mehr infos.
Eine Lösung :
Verwenden Sie die shiftKey statt. Die hat eine Eigenschaft mit dem gleichen Namen auf dem event-Objekt.