如何检测Google Instant页面是否已完全加载?

7
我正在开发一款浏览器扩展程序(类似SEOQuake),需要显示关于搜索结果的一些数据。
问题:如果在Google即时搜索结果页面仍在加载过程中添加了任何内容,则会覆盖任何添加的内容。我发现自己写了一些非常奇怪的setInterval代码(等待ol#rso内容停止变化等),所以我不确定如何可靠地确定页面是否已完成加载。
我可以等待1-2秒钟,但我真的想尽快获取数据,以节省最大的时间。
编辑:请注意,我不能使用DOMElementWhatever,因为IE8不支持它。

我不确定是否已经有一个好的跨浏览器解决方案。有新的Mutation ObserversMutation Summary库可以帮助,但没有IE支持。另一种有趣的方法是使用CSS3动画事件,但没有IE支持 :-p 那么对于IE来说,使用setInterval的hack,对于其他情况使用Mutation Summary如何? - thirdender
你可以尝试在IE浏览器中使用onpropertychange事件。 - thirdender
1个回答

3

试试这个:

window.addEventListener("message", function(e) {if(e.data == 'jrc') console.log('loaded')}, false);

这应该在IE 8+和其他所有浏览器中都可以工作:http://caniuse.com/#feat=x-doc-messaging

如果在IE 8中无法工作(我现在无法在我的Mac上测试),请告诉我。我相信我在上一个小时里对rs.js有了一些相当不错的理解。;)


一个编辑被审核员拒绝,因为它本应该是一个答案。该编辑建议,现在应该将其更改为 e.data.type == 'sr' - mrks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接