Я хочу использовать MutationObserver для отслеживания изменений DOM в окне, которое я создаю с помощью window.open
. У меня есть следующий код:
var newWin = window.open('/somepath');
var observerConfig = {
childList: true,
subtree: true,
attributes: false,
characterData: false
};
var obs = new newWin.MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (!mutation.addedNodes) return;
mutation.addedNodes.forEach(function(addedNode) {
console.log(addedNode);
});
})
});
obs.observe(newWin.document, observerConfig);
Я ожидал увидеть некоторые недавно добавленные узлы, зарегистрированные в консоли (как я получил, когда я отслеживал исходное окно таким же образом, тот же наблюдатель), но я ничего не получаю. Я что-то упускаю?
newWin.document
. - person wOxxOm   schedule 01.01.2018load
во вновь созданном окне, это не сработало. Я что-то упускаю? (проверено на Chrome и Firefox) - person Sébastien   schedule 02.01.2018new newWin.MutationObserver
- person wOxxOm   schedule 02.01.2018var newWin = window;
, я вижу, что новые добавления узлов регистрируются, как и ожидалось, поэтому кажется, что проблема заключается вwindow.open
. - person benams   schedule 03.01.2018window.open
, но только когда я использую прослушиватель событий, как рекомендовал @Sébastien... - person benams   schedule 04.01.2018