Umgang mit 'Strg+s' keypress-Ereignis für browser
Ich war zu versuchen, die STRG+S - Funktion für eine browser-basierte Anwendung.Ich machte eine Suche und kam über 2 Skripte im folgenden zu Fragen
Besten cross-browser-Methode zu erfassen STRG+S mit JQuery?
Strg+S preventDefault in Chrom
Jedoch,als ich versuchte, es zu implementieren,es hat geklappt aber ich bekomme immer noch die Standard-browser speichern Dialogfeld/Fenster.
Mein Code:Für shortcut.js
shortcut.add("Ctrl+S",function() {
alert("Hi there!");
},
{
'type':'keydown',
'propagate':false,
'target':document
});
jquery hotkeys.js
$(document).bind('keydown', 'ctrl+s', function(e) {
e.preventDefault();
alert('Ctrl+S');
return false;
});
Ich glaube e.preventDefault();
sollten den trick tun,aber aus irgendeinem Grund funktioniert es nicht.Wo mache ich falsch.Sorry, wenn es einfach ist,noch javascript lernen.
Vielen Dank für Ihre Zeit.
- Die 2. funktioniert für mich. Welchen browser benutzt du und welche version es ist?
- Ich versuchte es auf chrome,FF und IE 8,9.Ich glaube, wenn ich die Warnung, es bringt die Standard-Fenster mit!!!!Wenn ich einen
console.log
es nicht zu bringen bis das Fenster! 😛 Warum ist es so?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brauchen Sie nicht alle diese Bibliotheken, probieren Sie dies:
War das problem, dass der code angehalten an der
alert()
verhindert, dass Ihre Funktion unterbricht den speichern-Dialog.(Noch jQuery verwendet)
console.log
,es scheint zu funktionieren!! Irgendein problem mit dem script, oder es ist die Standard-Verhalten?? 😛alert
wurde, pausieren Sie Ihre code ein, bevor Sie es stoppen konnte Sie den speichern-dialog angezeigt werden..bind()
Funktion, welche die Jungs über bei jQuery nicht zu empfehlen mehr. Die'ctrl+s'
scheint zu sein, Daten, die nicht überall verwendet werden, entweder.switch()
Funktion und erweitern Sie Ihre Antwort für jede andere Taste, wieCtrl + B
,Ctrl + I
- und ...Dies ist, fügen Sie einfach eine andere Implementierung auf die Frage von mir benutzt wird.
Angepasst von einer SO beantworten.Auch die arbeiten für MAC
Menschen sind immer noch der Ansicht dieser es scheint, so ist es wohl erwähnenswert, dass es keine Notwendigkeit für jQuery auf diesen einen, hier:
Diese Arbeit sollte in allen Browsern, auch für Leute mit alternative Tastatur-layouts von QWERTY auf Windows, die Berichte falsche key codes (zumindest in Chrome 56 auf Windows 10 in meinen Tests)
Aber das sieht irgendwie klobig und unübersichtlich, so dass, wenn Sie nur die Unterstützung moderner Browser können Sie folgende Schritte statt:
Keine Notwendigkeit, jede plugin, nutzen Sie einfach unten jquery-code
Da Sie mit Alarm, die Ausführung hält an der Warnung und "return false" nicht ausgeführt, bis Sie Sie schließen der alertbox, das ist der Grund, warum Sie das Standard-Dialogfeld.
Wenn Ihre Methode ist die lange Laufzeit eine bessere Nutzung asyn-Methode-Methode statt.
Ab 2017, anstatt
e.keyCode === 83
Sie verwenden solltene.key === 's'
als die erstere ist veraltet.