Heim > Web-Frontend > js-Tutorial > Wie kann ich das Drücken der Browser-Zurück-Taste in verschiedenen Browsern zuverlässig erkennen?

Wie kann ich das Drücken der Browser-Zurück-Taste in verschiedenen Browsern zuverlässig erkennen?

Barbara Streisand
Freigeben: 2024-12-17 03:46:24
Original
115 Leute haben es durchsucht

How Can I Reliably Detect Browser Back Button Presses Across Different Browsers?

Ereigniserkennung der Browser-Zurück-Schaltfläche in allen Browsern

Das Erkennen des Verhaltens der Browser-Zurück-Schaltfläche stellt aufgrund ihrer asynchronen Natur eine Herausforderung dar. Es gibt zwar einige Methoden, wie z. B. die Verwendung von window.onhashchange, diese unterscheiden jedoch nicht zwischen In-Page-Elementen, die Hash-Änderungen auslösen, und dem tatsächlichen Drücken der Zurück-Schaltfläche.

Erzwingen der Verwendung der In-Page-Zurück-Schaltfläche

In Einzelseitenanwendungen, die auf Hash-Navigation basieren, ist es wichtig, die Funktionalität der Zurück-Schaltfläche zu regulieren. Durch die Verwendung einer In-Page-Zurück-Schaltfläche, die den Hash ändert, können Sie die Kontrolle über die Navigation behalten.

Erkennen von Browser-Zurück-Tastendrücken

Um Ereignisse der Browser-Zurück-Taste genau zu erkennen Ziehen Sie einen plattformübergreifenden Ansatz in Betracht, bei dem Sie mit der Maus darüber fahren und Ereignisse im Dokument belassen.

document.onmouseover = function() {
    // User's cursor is within the document area
    window.innerDocClick = true;
}

document.onmouseleave = function() {
    // User's cursor has exited the document area
    window.innerDocClick = false;
}

window.onhashchange = function() {
    if (window.innerDocClick) {
        // Navigation triggered by in-page action
    } else {
        // Browser back button was pressed
    }
}
Nach dem Login kopieren

Diese Methode setzt ein boolesches Flag (window.innerDocClick), um anzugeben, ob sich der Cursor innerhalb des Dokumentbereichs befindet. Wenn sich der Hash ändert, während das Flag falsch ist, deutet dies auf das Drücken der Zurück-Taste des Browsers hin.

Verhindern, dass die Rücktaste ein Back-Ereignis auslöst

Um zu verhindern, dass die Rücktaste das aktiviert Zurück-Taste verwenden Sie den folgenden jQuery-Code:

$(function(){
    var rx = /INPUT|SELECT|TEXTAREA/i;
    $(document).bind("keydown keypress", function(e){
        if( e.which == 8 ){ // 8 == backspace
            if(!rx.test(e.target.tagName) || e.target.disabled || e.target.readOnly ){
                e.preventDefault();
            }
        }
    });
});
Nach dem Login kopieren

Dieser Code fängt das Drücken der Rücktaste ab und verhindert, dass sie das Zurück-Tasten-Ereignis auslösen, wenn Der Fokus liegt nicht auf einem Eingabefeld.

Das obige ist der detaillierte Inhalt vonWie kann ich das Drücken der Browser-Zurück-Taste in verschiedenen Browsern zuverlässig erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage