msdn上说当ReadyState变成READYSTATE_COMPLETE的时候,才会触发DocumentComplete事件。
我用webBrowser1.get_ReadyState()方法查看ReadyState,结果一直是READYSTATE_LOADING。
不知道为什么不变成READYSTATE_COMPLETE状态
我用webBrowser1.get_ReadyState()方法查看ReadyState,结果一直是READYSTATE_LOADING。
不知道为什么不变成READYSTATE_COMPLETE状态
这个网站确实跟其他网站有个不一样的地方。
就是中间有个flash,分6页自动浏览。
我用httpwatch在ie8里面浏览这个网站,监控下载情况,发现这个flash每装载一页,就会把那页的图片下载下来。所以这个时候可能webbrowser认为还没有documentcomplete。但是当这6页都播放完毕之后。httpwatch显示ie不会再下载任何对象了。这个时候应该是documentComplete了。但是用我自己做的webbrowser在这个时候却也不会触发。应该说等多久都不会触发。这个是我疑惑的地方。
usbank在装载flash的时候,每播到一个页面会触发DownloadBegin和DownloadComplete事件,当6页都播放完的时候就不再触发这两个事件了。按理说这时候就应该有documentComplete了,但是没有。头疼。
<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>但是用鼠标右键点击直接查看源代码的方式,却找不到这段。
是不是跟这个有关?
我用ie6试了,的确可以收到documentComplete。
但是升级到ie7之后,就收不到了。
不知道为什么。
我又调用了get_busy方法,发现确实不busy了。如果还有request的话,状态应该还是busy吧?
但是readystate没变化,还是loading。
busy和readystate状态这两个有什么区别呢?
看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有关。请各位帮忙仔细看看,多谢了。