Maison >interface Web >js tutoriel >Comment détecter les clics sur le bouton Retour dans un navigateur ?

Comment détecter les clics sur le bouton Retour dans un navigateur ?

DDD
DDDoriginal
2024-10-22 14:02:02966parcourir

How Can You Detect Back Button Clicks in a Browser?

Détecter le clic sur le bouton Retour dans le navigateur

Pour suivre les événements de navigation des utilisateurs, l'écouteur d'événements window.onbeforeunload peut être utilisé. Cependant, cet événement se déclenche non seulement lorsque le bouton Précédent est enfoncé, mais également lors de l'actualisation ou du rechargement de la page.

Solution :

Pour résoudre ce problème, le code suivant utilisant l'événement window.onload peut être utilisé :

window.onload = function () {
    if (typeof history.pushState === "function") {
        history.pushState("jibberish", null, null);
        window.onpopstate = function () {
            history.pushState('newjibberish', null, null);
            // Handle back/forward navigation here
        };
    }
    else {
        var ignoreHashChange = true;
        window.onhashchange = function () {
            if (!ignoreHashChange) {
                ignoreHashChange = true;
                window.location.hash = Math.random();
                // Handle hash change navigation here
            }
            else {
                ignoreHashChange = false;
            }
        };
    }
}

Cette solution fait la distinction entre la navigation arrière et d'autres événements comme l'actualisation et les rechargements, offrant une gestion précise des clics sur le bouton retour. Il fonctionne correctement dans les navigateurs tels que Chrome et Firefox.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn