>  기사  >  웹 프론트엔드  >  JavaScript에서 URL 변경을 감지하고 응답하는 방법은 무엇입니까?

JavaScript에서 URL 변경을 감지하고 응답하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-28 18:10:30296검색

How to Detect and Respond to URL Changes in JavaScript?

URL 변경 시 이벤트를 트리거하는 방법

window.location.href를 주기적으로 수정하는 웹사이트용 Greasemonkey 스크립트를 개발할 때 다음과 같습니다. 이러한 URL 변경에 대응하여 특정 작업을 수행하는 데 필요한 경우가 많습니다. 그러나 폴링이나 타임아웃을 잠재적인 해결책으로 활용하는 것은 비효율적일 수 있습니다.

이러한 문제를 방지하기 위해 MutationObserver API를 활용하는 매우 효과적인 방법을 제시합니다. 본문 요소 내의 변경 사항을 모니터링함으로써 이 스크립트는 URL 수정을 효과적으로 감지하고 수정된 문서의 DOM에 대한 액세스를 제공할 수 있습니다.

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);
};

또는 보다 간결하고 현대적인 접근 방식을 선호하는 경우 다음을 사용할 수 있습니다. 최신 JavaScript 사양을 활용하는 스크립트:

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;

이 방법을 사용하면 URL이 변경될 때 트리거되는 이벤트에 원하는 기능을 첨부하여 수정된 문서의 DOM에 대한 액세스를 제공할 수 있습니다.

위 내용은 JavaScript에서 URL 변경을 감지하고 응답하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.