我有一个browser extension用于Google日历,我在其中观察DOM以收集正在查看的事件:
// content.js
const calendarContainer = document.getElementById('gridcontainer');
const observer = new MutationObserver(mutations => {
// just for test
console.log('content', mutations);
}
observer.observe(calendarContainer, {
childList: true,
characterData: true,
subtree: true
});
它在" classic"中正常工作日历,但自上次更新到Material设计以来,DOM结构不同。所以,我试图相应地改变观察到的元素:
// content.js
const calendarContainer = document.querySelector('div[role="main"]');
即使我在周/日视图,日程安排或日期之间切换,除了首次加载页面(刷新后)之外,我无法接收任何新的突变。如果您通过开发人员工具查看源代码,您可以看到DOM正在发生变化,但Observer无法看到它。
有什么想法吗?
答案 0 :(得分:1)
根据 wOxxOm 评论,我更改了它以观察不同来电之间未被替换的parentElement,并且它正在运行。