Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie erkennt man Klicks auf die Zurück-Schaltfläche in Webbrowsern genau und vermeidet gleichzeitig falsche Auslöser?

Susan Sarandon
Freigeben: 2024-10-22 14:43:54
Original
682 Leute haben es durchsucht

How to Accurately Detect Back Button Clicks in Web Browsers While Avoiding False Triggers?

Erkennen des Zurück-Button-Klicks in Webbrowsern: Behebung falscher Auslöser

Beim Versuch, den Zurück-Button-Klick eines Benutzers zu erkennen, verlassen sich Entwickler oft auf die window.onbeforeunload-Ereignis. Dieser Ansatz weist jedoch eine Einschränkung auf: Er wird auch ausgelöst, wenn andere Aktionen ausgeführt werden, beispielsweise das Aktualisieren der Seite.

Eine umfassendere Lösung besteht darin, zwischen Klicks auf die Zurück-Schaltfläche und anderen Ereignissen zu unterscheiden:

Verwendung der History-API:

Dieser Ansatz zielt auf Browser ab, die die History-API (history.pushState-Funktion) unterstützen:

<code class="js">window.onload = function () {
  if (typeof history.pushState === "function") {
    history.pushState("jibberish", null, null);
    window.onpopstate = function () {
      history.pushState('newjibberish', null, null);
      // Handle back or forward button clicks here (excluding refresh)
    };
  } else {
    ... // Handle non-History API browsers
  }
}</code>
Nach dem Login kopieren

Verwendung von Hash-Änderungen:

Für Browser ohne History-API-Unterstützung kann eine Fallback-Lösung mithilfe von Hash-Änderungen implementiert werden:

<code class="js">window.onload = function () {
  ... // Similar to History API code
} else {
  var ignoreHashChange = true;
  window.onhashchange = function () {
    if (!ignoreHashChange) {
      ignoreHashChange = true;
      window.location.hash = Math.random();
      // Detect back button click here
      // Note: Messes with hash symbol at the end of URL
    } else {
      ignoreHashChange = false;
    }
  };
}</code>
Nach dem Login kopieren

Behandlung von Aktualisierungsproblemen:

While Die oben genannten Lösungen befassen sich mit der Erkennung der Zurück-Schaltfläche, sie kümmern sich nicht um die Aktualisierung der Seite. Hierzu kann weiterhin window.onbeforeunload verwendet werden:

<code class="js">window.onbeforeunload = function (e) {
  if (e.preventDefault) {
    e.preventDefault();
    e.returnValue = '';
  }
}</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erkennt man Klicks auf die Zurück-Schaltfläche in Webbrowsern genau und vermeidet gleichzeitig falsche Auslöser?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!