При переходе на другую страницу скрипт почему-то не загружается заново

Есть расширение для браузера, оно работает с сайтом YouTube. При переходе на другую страницу скрипт почему-то не загружается заново, а на новой странице остается то же содержание insertAdjacentHTML что и на предыдущей странице. Что я делаю не так? Что стоит попробовать?

window.addEventListener('load', function(){

    function injectScript() {
       
      if(document.querySelector('#a') === null && document.querySelector('#player.style-scope') !== null){
        
        Array.from(document.querySelectorAll('#player')).pop().insertAdjacentHTML("afterend", `<div id="a">Код</div>`);

        // Код

      }
    }

    const  element = document.querySelector('body');

    function childList(list){
      injectScript();
    }

    let callback = function(mutations, observer) {
      mutations.forEach(function(mutation) {
        if(mutation.type === 'childList'){
          childList(mutation);
        }
      });
    }

    const mutationObserver = new MutationObserver(callback);

    const config = {
      childList: true,
      subtree: true
    };
    mutationObserver.observe(element, config);

})

Ответы (1 шт):

Автор решения: Егор Банин

Современные сайты-приложения не перезагружают страницы. Они просто меняют содержимое так, что нам кажется, что мы перешли на новую страницу. Проверить это можно открыв вкладку Сеть в инструментах разработчика в браузере и походить по сайту. Если запросов на страницу (Doc) нет, значит всё меняется динамически (через Fetch/XHR).

В интернете советуют повесить MutationObserver следить за изменениями на странице и проверять не поменялся ли location.href.

→ Ссылка