Proactive MutationObserver - перехватить узел перед добавлением в DOM - PullRequest
0 голосов
/ 26 мая 2020

Мне нужно перехватить узлы , прежде чем они будут помещены в DOM для управления атрибутами (sr c + песочница). Я использую встроенные файлы YouTube на своем сайте, и из-за GDPR и прав на защиту данных мне нужно , чтобы перехватить размещение файлов cookie из этих iframe. Я тестировал множество идей, но моя большая проблема в том, что все попытки выполняются после iframe уже были вставлены в DOM.

Моя текущая, лучшая попытка это:

var observer = new MutationObserver(function (mutations) {
  mutations.forEach(function (mutation) {
    [].filter
      .call(mutation.addedNodes, function (node) {
        return node.nodeName == 'IFRAME';
      })
      .forEach(function (node) {
        node.setAttribute('data-src', node.getAttribute('src'));
        node.setAttribute('sandbox', '');
        node.setAttribute('src', '');
      });
  });
});
observer.observe(document.documentElement, { childList: true, subtree: true });

Он отлично работает в Firefox, но в Chrome iframe выполняют свои запросы и помещают файлы cookie до изменения атрибутов. Я узнал, что MutationObserver являются строго реактивными, поэтому теоретически моя попытка не должна работать даже в Firefox.

Что я могу сделать, чтобы заблокировать загрузку и размещение файлов cookie фреймами?

Любая помощь / идеи приветствуются!

...