Обнаружить изменение класса на <body>с MutationObserver? - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть <body> с именем <body id="check-in-body">, и я хочу определить, когда класс изменится на этом.Он может измениться с class="theme-1" на class="theme-2" и т. Д.

У меня есть код ниже, но я не могу заставить его работать.Я смог заставить его работать частично при удалении && (mutation.attributeName === "class") и attributeFilter: ['class'] из кода ниже.Но это срабатывает все время, потому что когда у меня есть видимый модальный режим, style="overflow: hidden;" будет добавлен к body, и я думаю, что именно это вызывает его.Как я могу слушать только изменения класса на body?

function searchBackgroundFetch() {
  var element = document.querySelector('#check-in-body');
  var observer = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
      if ((mutation.type === "attributes") && (mutation.attributeName === "class")) {
        console.log('Yeah');
      }
    });
  });
  observer.observe(element, {
    attributes: true,
    attributeFilter: ['class']
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...