Meine Benutzer möchten in der Lage sein, Ctrl+ Szu drücken, um ein Formular zu speichern. Gibt es eine gute browserübergreifende Möglichkeit, die Ctrl+ STastenkombination zu erfassen und mein Formular zu senden?
Die App basiert auf Drupal, sodass jQuery verfügbar ist.
javascript
jquery
ceejayoz
quelle
quelle
keydown
anstelle vonkeypress
in ChromDies funktioniert bei mir (mit jquery), um Ctrl+ S, Ctrl+ Fund Ctrl+ zu überladen G:
quelle
window.addEventListener(
anstelle von$(window).bind(
else if
funktioniert nicht, da die ursprünglicheif
Anweisung bereits als wahr ausgewertet wird. Sie müssen Ihren Code vor die ursprünglicheif
Anweisung setzen und das Original in eine verwandelnelse if
.Sie können eine Verknüpfungsbibliothek verwenden , um die browserspezifischen Aufgaben zu erledigen.
quelle
Diese jQuery-Lösung funktioniert für mich in Chrome und Firefox sowohl für Ctrl+ Sals auch für Cmd+ S.
quelle
e.key
anstelle vone.which
;Dieser hat für mich auf Chrome funktioniert ... aus irgendeinem Grund
event.which
gibt er ein Großbuchstaben S (83) für mich zurück, nicht sicher warum (unabhängig vom Status der Feststelltaste), also habe ich verwendetfromCharCode
undtoLowerCase
nur um auf der sicheren Seite zu seinWenn jemand weiß, warum ich 83 und nicht 115 bekomme , werde ich mich freuen zu hören, auch wenn jemand dies in anderen Browsern testet, werde ich mich freuen zu hören, ob es funktioniert oder nicht
quelle
Ich habe einige Optionen kombiniert, um FireFox, IE und Chrome zu unterstützen. Ich habe es auch aktualisiert, um Mac besser zu unterstützen
quelle
Ich möchte, dass Webanwendungen ehrlich gesagt meine Standard-Tastenkombinationen nicht überschreiben. Ctrl+ macht Sschon etwas in Browsern. Diese Änderung abrupt abhängig von der Site, die ich gerade ansehe, ist störend und frustrierend, ganz zu schweigen von den oft fehlerhaften. Ich habe Websites entführt, Ctrl+ Tabweil sie genauso aussahen wie Ctrl+ I, was sowohl meine Arbeit auf der Website ruinierte als auch mich daran hinderte, die Tabs wie gewohnt zu wechseln.
Wenn Sie Tastenkombinationen möchten, verwenden Sie das
accesskey
Attribut. Bitte brechen Sie nicht die vorhandenen Browserfunktionen.quelle
@Eevee: Da der Browser die Heimat für immer umfangreichere Funktionen wird und Desktop-Apps ersetzt, ist es einfach keine Option, auf die Verwendung von Tastaturkürzeln zu verzichten. Die umfangreichen und intuitiven Tastaturbefehle von Google Mail trugen maßgeblich zu meiner Bereitschaft bei, Outlook aufzugeben. Die Tastaturkürzel in Todoist, Google Reader und Google Kalender erleichtern mir das tägliche Leben erheblich.
Entwickler sollten auf jeden Fall darauf achten, Tastenanschläge, die bereits eine Bedeutung im Browser haben, nicht zu überschreiben. Zum Beispiel interpretiert das WMD-Textfeld, in das ich unerklärlicherweise tippe, Ctrl+ Delals "Blockquote" anstatt als "Wort vorwärts löschen". Ich bin gespannt, ob es irgendwo eine Standardliste mit "browser-sicheren" Verknüpfungen gibt, die Website-Entwickler verwenden können und von denen sich Browser verpflichten, sich in zukünftigen Versionen fernzuhalten.
quelle
Dies ist eine aktuelle Version der Antwort von @ AlanBellows, die
which
durch ersetzt wirdkey
. Es funktioniert auch mit Chrome's Großbuchstabenfehler (wenn Sie Ctrl+ drücken S, wird Großbuchstaben S anstelle von s gesendet). Funktioniert in allen modernen Browsern.quelle
Dies war meine Lösung, die viel einfacher zu lesen ist als andere Vorschläge hier, leicht andere Tastenkombinationen enthalten kann und auf IE, Chrome und Firefox getestet wurde:
quelle
String.fromCharCode
. Macs haben jedoch keinen Steuerschlüssel. Testen Sie die Befehlstaste mitevt.metaKey
. Es kehrttrue
für Cmd unter Mac und Win unter Windows zurück.Ich mag dieses kleine Plugin . Es braucht allerdings etwas mehr Cross-Browser-Freundlichkeit.
quelle
Dies sollte funktionieren (angepasst von https://stackoverflow.com/a/8285722/388902 ).
quelle
Beispiel:
Verwendung
Link zum Download: http://www.openjs.com/scripts/events/keyboard_shortcuts/#
quelle
Zu Alan Bellows Antwort :! (E.altKey) hinzugefügt für Benutzer, die AltGrbeim Tippen verwenden (z. B. Polen). Ohne dieses Drücken von AltGr+ erhalten Sie Sdas gleiche Ergebnis wie Ctrl+S
quelle
Dieses von mir erstellte Plugin kann hilfreich sein.
Plugin
Mit diesem Plugin müssen Sie die Schlüsselcodes und Funktionen angeben, um so ausgeführt zu werden
Im Code habe ich gezeigt, wie man für Ctrl+ arbeitet S. Sie erhalten eine detaillierte Dokumentation über den Link. Das Plugin befindet sich im JavaScript-Code-Bereich meines Stifts auf Codepen.
quelle
Ich habe mein Problem im IE gelöst , indem ich ein verwendet habe
alert("With a message")
, um das Standardverhalten zu verhindern:quelle