Rumah >hujung hadapan web >tutorial js >Bagaimana dengan Mudah Mengalih Keluar Hash URL dalam JavaScript Tanpa Muat Semula?

Bagaimana dengan Mudah Mengalih Keluar Hash URL dalam JavaScript Tanpa Muat Semula?

Barbara Streisand
Barbara Streisandasal
2024-11-30 04:11:10436semak imbas

How to Effortlessly Remove a URL's Hash in JavaScript Without Reloading?

Pengalihan Keluar Hash URL dengan Mudah dengan JavaScript

S: Saya mempunyai URL seperti http://example.com#something, dan Saya mahu mengalih keluar #sesuatu tanpa memuat semula halaman. Menggunakan "window.location.hash = ''" tidak berjaya.

J: API Sejarah HTML5 menyediakan penyelesaian yang elegan. Berikut ialah fungsi JavaScript yang melakukan silap mata:

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

Ini berfungsi dalam penyemak imbas utama seperti Chrome, Firefox, Safari, Opera dan juga IE 10.

Untuk penyemak imbas yang menggunakan 't menyokong API Sejarah:

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 current scroll offset
        scrollV = document.body.scrollTop;
        scrollH = document.body.scrollLeft;

        loc.hash = "";

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

Penyelesaian ini mungkin tidak serasi secara universal, tetapi ia memberikan anggun kemerosotan untuk penyemak imbas yang tidak menyokong API Sejarah.

Atas ialah kandungan terperinci Bagaimana dengan Mudah Mengalih Keluar Hash URL dalam JavaScript Tanpa Muat Semula?. 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