Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengalih Keluar Simbol Hash daripada URL Menggunakan JavaScript Tanpa Memuat Semula Halaman?

Bagaimanakah Saya Boleh Mengalih Keluar Simbol Hash daripada URL Menggunakan JavaScript Tanpa Memuat Semula Halaman?

Susan Sarandon
Susan Sarandonasal
2024-11-29 10:57:10848semak imbas

How Can I Remove the Hash Symbol from a URL Using JavaScript Without Reloading the Page?

Mengalih keluar Simbol Cincang daripada URL dengan JavaScript

Mengalih keluar simbol cincang (#) daripada URL tanpa memuat semula halaman memerlukan sentuhan yang lebih halus daripada sekadar menetapkan window.location.hash kepada rentetan kosong.

Penyelesaian Elegan untuk Moden Pelayar

API Sejarah HTML5 moden menawarkan penyelesaian yang elegan:

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

Contoh Demo:

https://jsfiddle. net/AndyE/ycmPt/

Pelayar Lebih Luas Sokongan

Untuk pelayar yang tidak mempunyai sokongan History API, pertimbangkan skrip yang merendahkan maruah ini:

function removeHash() {
  var scrollV = document.body.scrollTop;
  var scrollH = document.body.scrollLeft;
  var loc = window.location;

  if ("pushState" in history) {
    history.pushState("", document.title, loc.pathname + loc.search);
  } else {
    loc.hash = "";
    document.body.scrollTop = scrollV;
    document.body.scrollLeft = scrollH;
  }
}

Kaveat

Walaupun penyelesaian ini boleh mengalih keluar simbol cincang, perlu diperhatikan bahawa ia mungkin tidak berfungsi dalam semua penyemak imbas, terutamanya yang lebih lama versi.

Nota Tambahan:

Untuk menggantikan halaman semasa dalam sejarah penyemak imbas, gunakan replaceState() dan bukannya pushState().

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Simbol Hash daripada URL Menggunakan JavaScript Tanpa Memuat Semula 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