2

我正在开发一个 Chrome 插件。它为每个标签注入一个类名。

我对诸如 facebook 之类的网页有一些问题,当您向下滚动时会在其中加载内容。

我想知道是否有办法检查是否加载了新内容。

到目前为止,我能找到的唯一解决方案是

 setInterval(function() { 

谢谢。

4

2 回答 2

2

Chrome 支持一个DOMSubtreeModified事件(源) - 有关详细信息,请参阅此答案。您的代码应如下所示:

document.addEventListener('DOMSubtreeModified', function() {
  $("*:not(.my_class)").addClass('my_class');
}, true);
于 2012-06-06T09:36:19.297 回答
1

如前所述Konrad Dzwinel,您可以使用一些Mutation Event侦听器

document.addEventListener("DOMSubtreeModified", methodToRun);

但请注意,Mutation Events这些性能猪实际上并不能很好地驯服(它们过于频繁地触发并大大降低了页面速度)。因此,它们已在一年多前被弃用,仅在真正需要时才应使用。然而,他们工作。

如果你想要这个 Chrome 扩展,你可以使用Mutation ObserversDOM Level 4 中的新的和闪亮的(点击那里的链接,他们解释了很多!)。在DOMSubtreeModified触发一千次的情况下,MutationObserver只触发一次,所有修改都包含在内且可访问。

适用于(截至 2012/06 年):

  • Chrome 18+(前缀,window.WebKitMutationObserver
  • Firefox 14+(无前缀)
  • WebKit 夜班
于 2012-06-25T23:26:22.757 回答