msdn上说当ReadyState变成READYSTATE_COMPLETE的时候,才会触发DocumentComplete事件。
我用webBrowser1.get_ReadyState()方法查看ReadyState,结果一直是READYSTATE_LOADING。
不知道为什么不变成READYSTATE_COMPLETE状态

解决方案 »

  1.   

    多谢楼上的,一语中的。
    这个网站确实跟其他网站有个不一样的地方。
    就是中间有个flash,分6页自动浏览。
    我用httpwatch在ie8里面浏览这个网站,监控下载情况,发现这个flash每装载一页,就会把那页的图片下载下来。所以这个时候可能webbrowser认为还没有documentcomplete。但是当这6页都播放完毕之后。httpwatch显示ie不会再下载任何对象了。这个时候应该是documentComplete了。但是用我自己做的webbrowser在这个时候却也不会触发。应该说等多久都不会触发。这个是我疑惑的地方。
      

  2.   

    我试了试具有类似分页flash的网站,比如csdn也有这种flash,csdn是可以响应documentcomplete事件的。但是用httpwatch观察,csdn是一次性的把这些分页的对象都下载完毕,然后播放。而usbank网站,是播放的时候,播到哪页下载哪页。这点两个网站不同。但是6页都播放完的时候,usbank还是没有documentComplete事件,这点让我很疑惑。
      

  3.   

    再结合OnDownloadComplete事件看看
      

  4.   

    回复楼上:
    usbank在装载flash的时候,每播到一个页面会触发DownloadBegin和DownloadComplete事件,当6页都播放完的时候就不再触发这两个事件了。按理说这时候就应该有documentComplete了,但是没有。头疼。
      

  5.   

    又看了一下网页源码,中间播放6页面的不是flash,好像跟它没什么关系。我用firebug在firefox上查看这个页面,发现最后加了下面这段:
    <div id="SWFObject">
      <object id="AIDAuth" width="1" height="1" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
        <param value="transparent" name="wmode">
        <param value="/js/home_new/AIDAuth.swf" name="src">
        <embed width="1" height="1" swliveconnect="true" type="application/x-shockwave-flash" loop="true" name="AIDAuth" src="/js/home_new/AIDAuth.swf" wmode="transparent" lk_mediaid="lk_juiceapp_mediaPopup_1275378897282" lk_media="yes">
      </object>
    </div>但是用鼠标右键点击直接查看源代码的方式,却找不到这段。
    是不是跟这个有关?
      

  6.   

    我这里 XP + IE6 可以收到DocumentComplete
      

  7.   

    非常感谢杀手k。
    我用ie6试了,的确可以收到documentComplete。
    但是升级到ie7之后,就收不到了。
    不知道为什么。
      

  8.   

    这段HTML代码是脚本动态添加上去的,所以查看源文件看不到。收不到的原因,可能是AJAX导致的,页面运作过程中在不停地使用 IXMLHttpRequest,导致浏览器认为数据尚未下载完。
      

  9.   


    我又调用了get_busy方法,发现确实不busy了。如果还有request的话,状态应该还是busy吧?
    但是readystate没变化,还是loading。
    busy和readystate状态这两个有什么区别呢?
      

  10.   


    看msdn上面好像说,readystate是比busy状态更详细的表示,当readystate为complete的时候,busy状态为false。我试了一些网站。的确是这样。不过usbank这个网站就例外。装载完毕后,busy状态为false,但是readystate状态还是loading。我觉得应该是因为这个状态没有改变,所以没有引起ie7,或者ie8的DocumentComplete事件。但是是什么原因导致的,就比较费解了。我在ie工具栏中,把ActiveX控件禁用之后,就没有这个问题了。readystate状态变成complete了,DocumentComplete事件也可以触发了。查看源文件,唯一有flash的地方就是我上面引用的7楼写的flash。
    当禁用ActiveX之后,这段flash代码就没有了。但是我单独把这个flash文件的url拿出来做了个简单的网页,然后访问,就没有任何问题。所以也不确定跟这个flash有关。请各位帮忙仔细看看,多谢了。
      

  11.   

    是的,如果有流水式的JS跳转到其他页面的代码,也不会触发这个事件,但是明明该网页已经下载完毕的了。用NavigateComplete就没问题。