我用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()都显示出来了, 但是因为该页面比较长, 我用鼠标查看该页的后面的内容时, 结果显示: 正在加载,请稍后(非常快,也就1s), 显示出该页后面内容后, 这些新的图象就没有用alert()显示.
就是说, 图象已经显示出来, 且我们已经看到了, 但程序中alert()没有显示这些图象名.
why?
怎么做?

解决方案 »

  1.   

    没有执行出来,你把HTML结构发出来看看。
      

  2.   

    应该是lazyload+ajax动态加载了非第一屏的内容,但是DOMContentLoaded事件是在DOM已经准备好,而其他资源可能还未下载完毕时触发的,所以其他内容未加载前已经执行过DOMContentLoaded事件了。
      

  3.   

    好像ajax动态加载的没什么事件可以用。。
    可以setTimeout/setInterval定时检查内容来实现
      

  4.   

    weibo.com 很多是异步加载的
      

  5.   

     兄弟,首先DOMContentLoaded是在DOM加载完毕执行的方法,所以说,针对你所说的就有定论了!因为,在DOM加载的过程中,就已经有某些图片涵盖在里面了!所以你的抓取方法,就读取到了!此时加载的图片,而在你DOMContentLoaded 方法执行后,所加载的图片,你此时的方法是无法读取此时的图片!