Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengesan Perubahan URL Selepas Simbol Hash dalam JavaScript?

Bagaimana untuk Mengesan Perubahan URL Selepas Simbol Hash dalam JavaScript?

Barbara Streisand
Barbara Streisandasal
2024-11-12 12:54:02639semak imbas

How to Detect URL Changes After the Hash Symbol in JavaScript?

Mengesan Perubahan URL dalam JavaScript Selepas Simbol Hash

JavaScript menawarkan cara untuk mengesan jika URL telah berubah, termasuk pilihan berikut:

  • Acara Onload:

    • Acara onload tidak dicetuskan apabila URL berubah selepas simbol cincang.
  • Pengendali Acara untuk URL:

    • Tiada pengendali acara terbina dalam khusus untuk mengesan perubahan URL.
  • Menyemak URL Setiap Saat:

    • Walaupun sentiasa menyemak URL setiap saat mungkin berkesan, ia tidak cekap dan boleh membawa kepada isu prestasi.

Menggunakan API Navigasi (Untuk Penyemak Imbas Moden)

Pelayar utama kini menyokong API Navigasi, yang menyediakan cara yang lebih cekap untuk mengesan perubahan URL :

window.navigation.addEventListener("navigate", (event) => {
    console.log("location changed!");
});

Acara Tersuai untuk Penyemak Imbas Lama

Untuk penyemak imbas lama tanpa API Navigasi, pendengar acara tersuai boleh dibuat dengan mengubah suai objek sejarah:

(() => {
    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"));
    });
})();

Kini, anda boleh mendengar perubahan URL menggunakan acara "locationchange":

window.addEventListener("locationchange", function () {
    console.log("location changed!");
});

Atas ialah kandungan terperinci Bagaimana untuk Mengesan Perubahan URL Selepas Simbol Hash dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn