Javascript:如何检查数据是否已加载

时间:2012-06-06 09:23:42

标签: javascript google-chrome-extension

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

我在网页上遇到了一些问题,例如facebook,当你向下滚动时会加载内容。

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

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

 setInterval(function() { 

感谢。

2 个答案:

答案 0 :(得分:2)

Chrome支持的DOMSubtreeModified事件(source) - 有关详细信息,请参阅this answer。您的代码应如下所示:

document.addEventListener('DOMSubtreeModified', function() {
  $("*:not(.my_class)").addClass('my_class');
}, true);

答案 1 :(得分:1)

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

document.addEventListener("DOMSubtreeModified", methodToRun);

但请注意,Mutation Events是性能值很高的,它们不能很好地驯服(它们经常发生火灾并且会使页面变慢)。因此,它们已在一年前被弃用,只应在真正需要时使用。但是,他们工作。

如果您想要Chrome扩展程序,可以使用DOM Level 4中新的闪亮Mutation Observers(按照其中的链接,他们会解释很多!)。如果DOMSubtreeModified被解雇了一千次,MutationObserver只会触发一次所有修改并且可以访问。

适用于(截至2012/06):

  • Chrome 18+(前缀window.WebKitMutationObserver
  • Firefox 14+(没有前缀)
  • WebKit nightlies