Heim > Web-Frontend > js-Tutorial > Wie erkennt man URL-Änderungen in JavaScript zuverlässig?

Wie erkennt man URL-Änderungen in JavaScript zuverlässig?

Susan Sarandon
Freigeben: 2024-11-12 09:57:02
Original
1072 Leute haben es durchsucht

How to Reliably Detect URL Changes in JavaScript?

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'));
    });
})();
Nach dem Login kopieren

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!

Quelle:php.cn
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