Heim  >  Artikel  >  Web-Frontend  >  Wie kann man Klicks auf die Zurück-Schaltfläche von Neuladen des Browsers und anderen Ereignissen unterscheiden?

Wie kann man Klicks auf die Zurück-Schaltfläche von Neuladen des Browsers und anderen Ereignissen unterscheiden?

Susan Sarandon
Susan SarandonOriginal
2024-10-22 12:42:02193Durchsuche

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

So erkennen Sie das Klicken auf die Zurück-Schaltfläche im Browser

Das Erkennen von Klicks auf die Zurück-Schaltfläche in Browsern, insbesondere in Webanwendungen, die AJAX nutzen, stellt eine Herausforderung dar . Während das window.onbeforeunload-Ereignis häufig für diesen Zweck verwendet wird, wird es auch bei anderen Aktionen wie dem Neuladen des Browsers ausgelöst, was unerwünscht ist.

Lösung:

Glücklicherweise gibt es das eine elegante Lösung, die Klicks auf die Zurück-Schaltfläche effektiv von Nachladevorgängen und anderen Ereignissen unterscheidet. Hier ist ein geänderter Code, der dieses Problem behebt:

<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>

Diese Lösung funktioniert in Chrome und Firefox und bietet eine präzisere Möglichkeit, Klicks auf die Zurück-Schaltfläche zu erkennen und gleichzeitig mögliche falsche Auslöser zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie kann man Klicks auf die Zurück-Schaltfläche von Neuladen des Browsers und anderen Ereignissen unterscheiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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