URL-Änderungen in JavaScript erkennen
Um URL-Änderungen in JavaScript zu verfolgen, ist es wichtig, eine zuverlässige Methode zu finden. Obwohl das Onload-Event nicht geeignet ist, gibt es mehrere praktikable Optionen.
1. Hash-Änderungsereignis:
Dieses Ereignis wird nur ausgelöst, wenn sich der URL-Teil nach dem #-Symbol ändert. Es ist auf Hash-bezogene Änderungen beschränkt.
2. Popstate-Ereignis:
Dieses Ereignis tritt auf, wenn die Verlaufsnavigationsschaltflächen des Browsers (z. B. zurück und vorwärts) verwendet werden oder wenn sich die URL über die Methoden pushState oder replaceState ändert. Allerdings funktioniert es möglicherweise nicht in allen Fällen.
3. Benutzerdefiniertes Locationchange-Ereignis (empfohlen):
Um eine umfassende URL-Änderungserkennung sicherzustellen, kann ein benutzerdefinierter Ereignis-Listener, „locationchange“, implementiert werden. Dazu gehört die Änderung des Verlaufsobjekts, um benutzerdefinierte Ereignisse für alle Verlaufsstatusänderungen auszulösen (d. h. pushState, replaceState und popstate).
Implementierung:
// Create a custom locationchange event window.addEventListener('locationchange', () => { console.log('Location changed!'); }); // Modify history object to trigger custom events (() => { let oldPushState = history.pushState; history.pushState = function pushState() { let ret = oldPushState.apply(this, arguments); window.dispatchEvent(new Event('pushstate')); window.dispatchEvent(new Event('locationchange')); return ret; }; let oldReplaceState = history.replaceState; history.replaceState = function replaceState() { let ret = oldReplaceState.apply(this, arguments); window.dispatchEvent(new Event('replacestate')); window.dispatchEvent(new Event('locationchange')); return ret; }; window.addEventListener('popstate', () => { window.dispatchEvent(new Event('locationchange')); }); })();
Von Mit diesem benutzerdefinierten Ereignis können Sie jede URL-Änderung effektiv erkennen, unabhängig davon, ob sie über Hash, PushState oder ReplacementState erfolgt. Diese Methode bietet eine umfassende Lösung zur Überwachung von URL-Änderungen in JavaScript-Anwendungen.
Das obige ist der detaillierte Inhalt vonWie erkennt man URL-Änderungen in JavaScript zuverlässig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!