日期:2014-05-17  浏览次数:20615 次

firefox扩展如何取得采用lazyload技术的页面的所有图象名?
我用window.document.getElementById("appcontent").addEventListener("DOMContentLoaded", MyMain, false); 去抓所有图象.  


MyMain(event)
{
  var imgs = event.target.getElementsByTagName("img");
  for (i = 0; i < imgs.length; i++) {
  path = imgs[i].src;
  alert(path);
  }
}

结果对www.weibo.com进行测试, 开始几个图象alert()都显示出来了, 但是因为该页面比较长, 我用鼠标查看该页的后面的内容时, 结果显示: 正在加载,请稍后(采用lazyload技术,非常快,也就1s), 显示出该页后面内容后, 这些新的图象就没有用alert()显示.
就是说, 图象已经显示出来, 且我们已经看到了, 但程序中alert()没有显示这些图象名.
why?
怎么做?

是否还要对其他什么时间进行监听?

------解决方案--------------------
因为DOMContentLoaded事件已经执行完毕了,拉动滚动条加载的图片晚于DOMContentLoaded事件,所以并没有DOM中并没有lazyload加载的内容

这个没有什么好办法一次获取所有的img,可以添加window.onscroll事件,滚动一次执行一次获取图片操作