"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo detectar de manera confiable el botón de retroceso del navegador y distinguir las acciones de retroceso dentro de la página?

¿Cómo detectar de manera confiable el botón de retroceso del navegador y distinguir las acciones de retroceso dentro de la página?

Publicado el 2025-04-17
Navegar:452

How Can We Reliably Detect Browser Back Button Presses and Differentiate Them from In-Page Back Button Actions?

Implementación de la detección del botón de retroceso del navegador cruzado

detectando el botón Atrás presione los eventos

determinando si el usuario ha presionado el botón de retroceso del navegador plantea un desafío. Muchos proponen usar la función Window.onhashChange, pero también responde a los botones de retroceso en la página, afectando negativamente la experiencia del usuario.

Administración de la funcionalidad del botón de retroceso

para aplicaciones de una sola página que utilizan navegación hash, es crucial controlar el comportamiento de los botones posteriores. Para hacerlo, emplee una matriz (window.location.lasthash) para almacenar hashs anteriores a medida que el usuario navega por la interfaz.

distintivo botón de navegador del botón de retroceso en la página

métodos convencionales como ventana. En su lugar, se ideó una variable de bandera alternada por el documento (cuando el mouse se cierne sobre el documento) y OnMouseLeave (cuando el mouse sale del documento) se ideó.

utilizando el mecanismo de detección

Window.onhashchang if (window.innerdocclick) { // El mecanismo en la página desencadenó el cambio de hash } demás { if (window.location.hash! = '#undefined') { // El botón de retroceso del navegador hizo clic en Goback (); } } }

window.onhashchange = function() {
    if (window.innerDocClick) {
        // In-page mechanism triggered the hash change
    } else {
        if (window.location.hash != '#undefined') {
            // Browser back button clicked
            goBack();
        }
    }
}

para evitar que Backspace active el evento del botón Atrás, implementa el siguiente script:

$ (function () { var rx = /input | select | textArea /i; $ (documento) .bind ("keydown keyPress", function (e) { if (E.which == 8) {// 8 == Backspace if (! rx.test (e.target.tagname) || e.target.disable || e.target.readonly) { E.PreventDefault (); } } }); });

$(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();
            }
        }
    });
});
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3