Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengalih Keluar Fragmen Cincang URL Tanpa Menyegarkan Halaman?

Bagaimanakah Saya Boleh Mengalih Keluar Fragmen Cincang URL Tanpa Menyegarkan Halaman?

Linda Hamilton
Linda Hamiltonasal
2024-12-03 16:02:16292semak imbas

How Can I Remove a URL Hash Fragment Without Refreshing the Page?

Mengalih keluar Fragmen Cincang URL Tanpa Muat Semula

Dalam landskap pembangunan web moden hari ini, mengalih keluar serpihan cincang (#something) daripada URL ( cth., http://example.com#something) ialah keperluan biasa. Walaupun pendekatan mudah seperti menetapkan "window.location.hash = ''" mungkin kelihatan intuitif, ia tidak menyelesaikan isu sepenuhnya.

Untuk mengalih keluar cincang dengan berkesan tanpa memuat semula halaman, kami beralih kepada HTML5 API Sejarah. API ini menyediakan keupayaan untuk memanipulasi URL dalam bar lokasi dalam domain semasa.

Fungsi JavaScript berikut memanfaatkan API Sejarah HTML5 untuk mengalih keluar serpihan cincang:

function removeHash() {
    history.pushState("", document.title, window.location.pathname + window.location.search);
}

Kod ini coretan menggantikan URL semasa dengan yang baharu tanpa serpihan cincang, menolak keadaan baharu ke dalam sejarah penyemak imbas. Ia berfungsi dengan lancar dalam penyemak imbas moden seperti Chrome, Firefox, Safari, Opera dan juga IE 10.

Untuk penyemak imbas yang tidak menyokong API Sejarah, pendekatan degradasi yang anggun boleh digunakan:

function removeHash() {
    var scrollV, scrollH, loc = window.location;
    if ("pushState" in history)
        history.pushState("", document.title, loc.pathname + loc.search);
    else {
        // Prevent scrolling by storing the page's current scroll offset
        scrollV = document.body.scrollTop;
        scrollH = document.body.scrollLeft;

        loc.hash = "";

        // Restore the scroll offset, should be flicker free
        document.body.scrollTop = scrollV;
        document.body.scrollLeft = scrollH;
    }
}

Fungsi lanjutan ini memastikan penyingkiran cincang dalam penyemak imbas yang tidak mempunyai sokongan API Sejarah, mengekalkan kedudukan tatal halaman untuk meminimumkan visual gangguan.

Dengan menggunakan teknik ini, anda boleh mengalih keluar serpihan cincang daripada URL dengan cekap tanpa mencetuskan penyegaran halaman, memberikan pengalaman pengguna yang lancar merentas pelbagai penyemak imbas.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Fragmen Cincang URL Tanpa Menyegarkan Halaman?. 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