erfasst das Ereignis f5 keypress in JavaScript mit window.event.keyCode im Ereignis window.onbeforeunload ist immer 0 und nicht 116

8

Ich erstelle eine MVC-Anwendung. Es gab eine Notwendigkeit, eine Variable in einer Sitzung auf Null zu setzen, wenn die Anwendung geschlossen wurde (d. h. Fenster / Tab), aber nicht beim Aktualisieren der Anwendung. Ich habe es durch den folgenden Code versucht.

%Vor%

Aber wenn F5 gedrückt wird, ist "window.event.keyCode" immer 0 und nicht 116. Dadurch wird meine Variable auch bei F5-Taste Null, was nicht meine Anforderung ist.

Selbst wenn die Anwendung (d. h. die Webseite) geschlossen ist, selbst dann ihre 0 (was wahrscheinlich richtig ist).

Bitte beachten Sie, dass sich der obige Teil des Codes in der .cshtml-Datei befindet.

Kann jemand sagen, wo ich falsch liege?

    
ismail baig 05.02.2013, 12:29
quelle

5 Antworten

18

Sie müssen sich verschiedene Ereignisse anhören, wenn Sie möchten, dass dies crossborwser funktioniert + Sie müssen das Key-Event jedes Mal anhören, wenn es gedrückt wird, nicht beim Laden:

%Vor%

Hier ist eine Demo: Ссылка

Wenn Sie jedoch nur wissen möchten, ob der Benutzer die Seite beendet, können Sie einfach window.onbeforeunload : Ссылка

    
meo 05.02.2013, 12:49
quelle
5

Verwenden Sie nicht e.keyCode == 166 verwenden Sie stattdessen e.code == 'F5'.

%Vor%

Dies liegt daran, dass "t" und "F5" beide die Schlüsselcode-Nummer 116 verwenden. Wenn Sie nur den Schlüsselcode eingeben, wird die Seite aktualisiert, wenn der Benutzer die Taste "t" drückt.

    
Sim_on 10.06.2016 07:19
quelle
4

Sie könnten es einfach so schreiben:

%Vor%     
Paul 10.04.2015 10:48
quelle
0

Ich stimme der Lösung von meo zu, aber ich werde einige Modifikationen hinzufügen.

wenn wir document.onkeydown = fkey verwenden; Zum Beispiel und auf der Seite haben wir eine andere Methode, die auf die Datei document.onkeydown wirkt. Dann wird der Browser nur das letzte Ereignis erkennen. Wenn wir jedoch verwenden: jQuery (Dokument) .on ("keydown", fkey); Selbst wenn wir eine andere Funktion haben, um das Keydown-Ereignis zu behandeln, werden alle Funktionen ausgelöst.

Siehe das nächste Beispiel, um mehr zu verstehen:

%Vor%

Was hier gezeigt wird: nur 3 Alarme: f2, f3 und f4. und die Funktion f1 wird in diesem Beispiel nicht ausgelöst.

    
junior 21.05.2014 16:32
quelle
0

Modifizierte Version und funktioniert auch nach Drücken von 't'.

Taste 116 wird automatisch gedrückt nach 84

%Vor%     
Faisal Shahzad 31.10.2017 09:48
quelle

Tags und Links