MutationObserver 在与谷歌相关的?网站上的奇怪行为

问题描述

我正在开发一个 Chrome 扩展程序,它使用 MutationObserver 的回调来触发内容脚本中的 cookie 同意和其他烦人的内容删除过程:

start();

function start() {
  console.log('start');
  scanner.observer = new MutationObserver(function(mutations) {
    console.log('MutationObserver callback',mutations);
    scanner.run();
  }),scanner.observer.observe(document.documentElement,{
    attributes: true,characterData: false,childList: true,subtree: true,attributeOldValue: false,characterDataOldValue: false }
  );}
}

start() 直接在内容脚本中调用,或者每次我单击扩展弹出窗口中的按钮时调用。除了一些与谷歌相关的网站外,它适用于每个网站。例如,在正常模式下在 google.com 上搜索某些内容时,它可以工作并在控制台中输出正确的日志,但在隐身模式下,我在浏览器的控制台中只得到 start。正常和隐身模式下的 developer.chrome.com 也是如此。

接下来是在 chrome.webstore.com(或 chrome://extensions 内页,这并不奇怪)我什至没有得到 start

顺便说一句。它适用于 translate.google.com 或 keep.google.com 等

从未在文档中看到提及它。这种行为有什么解释吗?


更新:不确定是否与谷歌相关。我还注意到有时它不会在 stackowerflow.com 或 stackexchange.com 上触发。有时它会在页面加载后例如 10-20 秒后触发(当一些附加资源、图像等完成加载并更新 DOM 时)


如果好奇:https://chrome.google.com/webstore/detail/provision/napdgmfnfbebjgahggnalabkkfaajldf

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...