MutationObserver in" new" Google日历

时间:2017-11-02 09:02:11

标签: javascript google-chrome-extension google-calendar-api browser-extension mutation-observers

我有一个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无法看到它。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

根据 wOxxOm 评论,我更改了它以观察不同来电之间未被替换的parentElement,并且它正在运行。