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!