Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mengesan dan Membalas Perubahan URL dalam JavaScript?

Bagaimana untuk Mengesan dan Membalas Perubahan URL dalam JavaScript?

Linda Hamilton
Linda Hamiltonasal
2024-10-28 18:10:30296semak imbas

How to Detect and Respond to URL Changes in JavaScript?

Cara Mencetuskan Peristiwa Apabila URL Berubah

Apabila membangunkan skrip Greasemonkey untuk tapak web yang mengubah suai window.location.href secara berkala, ia adalah selalunya diperlukan untuk melakukan tindakan khusus sebagai tindak balas kepada perubahan URL ini. Walau bagaimanapun, menggunakan tinjauan pendapat atau tamat masa sebagai penyelesaian yang berpotensi boleh menjadi tidak cekap.

Untuk mengelakkan isu sedemikian, kami mengemukakan kaedah yang sangat berkesan yang menggunakan API MutationObserver. Dengan memantau perubahan dalam elemen badan, skrip ini boleh mengesan pengubahsuaian URL dengan berkesan dan menyediakan akses kepada DOM dokumen yang diubah suai:

var oldHref = document.location.href;

window.onload = function() {
    var bodyList = document.querySelector('body');

    var observer = new MutationObserver(function(mutations) {
        if (oldHref != document.location.href) {
            oldHref = document.location.href;
            /* Insert your code here */
        }
    });
    
    var config = {
        childList: true,
        subtree: true
    };
    
    observer.observe(bodyList, config);
};

Sebagai alternatif, jika anda lebih suka pendekatan yang lebih ringkas dan moden, anda boleh menggunakan yang berikut skrip, yang memanfaatkan spesifikasi JavaScript terkini:

const observeUrlChange = () => {
  let oldHref = document.location.href;
  const body = document.querySelector('body');
  const observer = new MutationObserver(mutations => {
    if (oldHref !== document.location.href) {
      oldHref = document.location.href;
      /* Insert your code here */
    }
  });
  observer.observe(body, { childList: true, subtree: true });
};

window.onload = observeUrlChange;

Kaedah ini membolehkan anda melampirkan fungsi yang anda inginkan pada acara yang dicetuskan apabila URL berubah, memberikan akses kepada DOM dokumen yang diubah suai.

Atas ialah kandungan terperinci Bagaimana untuk Mengesan dan Membalas Perubahan URL dalam 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