Behandlung des 'ctrl + s'-Tastendruckereignisses für den Browser

7


Ich habe versucht, das CTRL + S Feature für eine browserbasierte Anwendung zu implementieren. Ich habe eine Suche durchgeführt und stieß im Folgenden auf 2 Skripts auf Fragen

Beste browserübergreifende Methode zum Erfassen von STRG + S mit JQuery?
Strg + S preventDefault in Chrome

Aber als ich versucht habe, es zu implementieren, hat es funktioniert, aber ich bekomme immer noch den Standard-Browser speichern Dialogfeld / Fenster .

Mein Code: Für shortcut.js

%Vor%

jquery hotkeys.js

%Vor%

Ich glaube e.preventDefault(); sollte den Trick machen, aber aus irgendeinem Grund funktioniert es nicht.Wohin gehe ich falsch.Schnell, wenn es einfach ist, noch JavaScript zu lernen.
Danke für Ihre Zeit.

    
coderunner 28.01.2013, 12:24
quelle

5 Antworten

12

Dies ist nur eine andere Implementierung zu der von mir verwendeten Frage hinzuzufügen. Angepasst von einer SO-Antwort. Funktioniert auch für MAC

%Vor%     
coderunner 28.01.2013, 13:15
quelle
20

Sie benötigen keine dieser Bibliotheken, versuchen Sie es einfach:

%Vor%

Das Problem bestand darin, dass Ihr Code bei alert() angehalten wurde, sodass Ihre Funktion den Speichervorgang nicht unterbrechen konnte.

(Verwendet immer noch jQuery)

    
Cerbrus 28.01.2013 12:32
quelle
1

Sie müssen kein Plugin verwenden, verwenden Sie einfach den jquery-Code

%Vor%

Da Sie eine Warnung verwenden, wird die Ausführung bei der Warnung angehalten und "return false" wird erst ausgeführt, wenn Sie die Warnmeldung schließen, daher sehen Sie den Standarddialog.

Wenn Ihre Methode lange läuft, verwenden Sie stattdessen die asyn-Methode.

    
Rohit Patel 28.01.2013 12:34
quelle
1

Die Leute sehen immer noch so, wie es scheint, also ist es wahrscheinlich wert, darauf hinzuweisen, dass hier kein Bedarf für jQuery besteht:

%Vor%

Das sollte in allen Browsern funktionieren, dies funktioniert auch für Leute, die alternative Tastaturlayouts von QWERTY unter Windows verwenden, die falsche Tastencodes melden (zumindest in Chrome 56 unter Windows 10 bei meinen Tests)

Das sieht jedoch ziemlich klobig und verwirrend aus. Wenn Sie also nur moderne Browser unterstützen, können Sie stattdessen Folgendes tun:

%Vor%     
Xenxier 05.06.2017 22:51
quelle
1

Ab 2017 sollten Sie anstelle von e.keyCode === 83 e.key === 's' verwenden, da das vorherige veraltet ist.

    
carkod 01.12.2017 14:33
quelle