Maison > interface Web > js tutoriel > le corps du texte

Comment distinguer les clics sur le bouton Retour des rechargements du navigateur et d'autres événements ?

Susan Sarandon
Libérer: 2024-10-22 12:42:02
original
192 Les gens l'ont consulté

How to Distinguish Back Button Clicks from Browser Reloads and Other Events?

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

La détection des clics sur le bouton Retour dans les navigateurs, en particulier dans les applications Web qui exploitent AJAX, présente un défi . Bien que l'événement window.onbeforeunload soit couramment utilisé à cette fin, il est également déclenché lors d'autres actions telles que le rechargement du navigateur, ce qui n'est pas souhaitable.

Solution :

Heureusement, il existe une solution élégante qui distingue efficacement les clics sur le bouton retour des rechargements et autres événements. Voici un code modifié qui résout ce problème :

<code class="javascript">window.onload = function () {
  if (typeof history.pushState === "function") {
    history.pushState("jibberish", null, null);
    window.onpopstate = function () {
      history.pushState("newjibberish", null, null);
      // Handle back button clicks here
    };
  } else {
    // For older browsers that don't support `pushState`
    var ignoreHashChange = true;
    window.onhashchange = function () {
      if (!ignoreHashChange) {
        ignoreHashChange = true;
        window.location.hash = Math.random();
        // Handle back button clicks here
      } else {
        ignoreHashChange = false;
      }
    };
  }
};</code>
Copier après la connexion

Cette solution fonctionne sur Chrome et Firefox, offrant un moyen plus précis de détecter les clics sur le bouton de retour tout en évitant les faux déclencheurs potentiels.

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!