Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Mengesan Perubahan URL Selepas Hash dalam JavaScript?

Bagaimanakah Saya Boleh Mengesan Perubahan URL Selepas Hash dalam JavaScript?

Susan Sarandon
Lepaskan: 2024-11-25 05:53:14
asal
133 orang telah melayarinya

How Can I Detect URL Changes After the Hash in JavaScript?

Mengesan Perubahan URL Selepas Cincang dalam JavaScript

Apabila bekerja dengan tapak web berasaskan AJAX seperti GitHub, menentukan sama ada URL telah berubah boleh penting. JavaScript membenarkan kaedah yang berbeza untuk memantau perubahan URL.

Pilihan untuk Mengesan Perubahan URL:

  • Acara onload: Acara ini dijalankan sahaja apabila halaman dimuat semula sepenuhnya, maka ia tidak sesuai untuk mengesan URL separa perubahan.
  • Pengendali Acara URL: JavaScript tidak menyediakan pengendali acara langsung untuk perubahan URL.
  • Semakan URL Biasa: Sentiasa menyemak URL setiap saat mungkin intensif sumber dan tidak praktikal.

Diperbaiki Kaedah: API Navigasi (2024)

Pelayar moden kini menyokong API Navigasi, yang menyediakan cara yang lebih cekap untuk mengesan perubahan URL. Begini cara ia berfungsi:

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

Kaedah Alternatif (API Pra-Navigasi)

Jika API Navigasi tidak tersedia, pendekatan tersuai boleh digunakan menggunakan kod berikut:

(function () {
    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'));
    });
})();
Salin selepas log masuk

Penyelesaian ini mengubah suai objek sejarah untuk menambah fungsi, membolehkan penciptaan acara tersuai pendengar, seperti:

window.addEventListener('locationchange', () => {
    console.log('location changed!');
});
Salin selepas log masuk

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan