Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengalih Keluar Hash URL Tanpa Menyegarkan Halaman Menggunakan JavaScript?

Bagaimanakah Saya Boleh Mengalih Keluar Hash URL Tanpa Menyegarkan Halaman Menggunakan JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-11-30 10:53:10874semak imbas

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

Mengalih keluar Cincang daripada URL Tanpa Muat Semula Halaman Menggunakan JavaScript

Apabila bekerja dengan URL, selalunya wajar untuk mengalih keluar serpihan cincang (#something ) tanpa menyebabkan halaman dimuat semula. Ini boleh dicapai menggunakan API Sejarah HTML5, yang membenarkan manipulasi bar lokasi.

Satu penyelesaian ialah:

window.location.hash = '';

Walau bagaimanapun, ini hanya mengalih keluar kandungan cincang, meninggalkan # simbol dalam URL.

Untuk penyelesaian yang lebih menyeluruh:

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

Kaedah ini berfungsi dalam Chrome, Firefox, Safari, Opera dan IE 10. Untuk penyemak imbas yang tidak menyokongnya, skrip 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 current scroll offset
        scrollV = document.body.scrollTop;
        scrollH = document.body.scrollLeft;

        loc.hash = "";

        // Restore scroll offset to avoid flickering
        document.body.scrollTop = scrollV;
        document.body.scrollLeft = scrollH;
    }
}

Dengan menggunakan teknik ini, anda boleh mengalih keluar cincang secara berkesan daripada a URL tanpa menyebabkan halaman dimuat semula, tanpa mengira sokongan penyemak imbas.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Hash URL Tanpa Menyegarkan Halaman Menggunakan 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