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

如何判断webbrowser 最后一次加载?
WebBrowserReadyState.Complete 并不准确,因为网页可能会跳转,也可能内部含有多个ifrem

然而用绑定事件 WebBrowserNavigatedEventHandler 加计数器 或者 用e.Url 来判断,这两种方式在特定情况下可行,比如明确知道某网站url,这时候一般计数是固定的,e.Url也是固定的。
但是这种方法不通用,换个网站可能就不行了。

有没有可以确定webbrowser是最后一次加载的靠谱方法呢?
webbrowser? 加载 Complete

------解决方案--------------------
Complete 和 basying 貌似都不行

------解决方案--------------------
  IoleCOntainer::Eunmoject判断每个框架加载是否完成即可
------解决方案--------------------
引用:
Quote: 引用:

Complete 和 basying 貌似都不行

确实不行,尤其是存在js跳转的情况下,比如一个不是真实的url实际访问是跳转后的地址,这种情况第一次跳转连complete都不触发,比较郁闷


不考虑效率的话就用webbrower
设置个默认时间

考虑效率的话 用 httprequest httpresponse 黑屏操作
------解决方案--------------------
   //等待页面加载完毕
            while (wb.ReadyState != WebBrowserReadyState.Complete)
            {
                System.Windows.Forms.Application.DoEvents();
            }

------解决方案--------------------
如果你只是想知道网页有没有加载完毕,用定时器判断一下Complate状态,又或者截取到Complete后做你想做的。有时候遇到网络不给力,加载一个小时都不会加载成功,所以你总需要定时器来重置。
------解决方案--------------------
引用:
Quote: 引用:

   //等待页面加载完毕
            while (wb.ReadyState != WebBrowserReadyState.Complete)
            {
                System.Windows.Forms.Application.DoEvents();
            }

这是没用的,因为第二次跳转后也是会引发complete状态,几次跳转可能就有几次 ReadyState


你确认你试过了?我指的是用webBrowser的ReadState,而不是某一个dom的ReadState. 
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Complete 和 basying 貌似都不行

确实不行,尤其是存在js跳转的情况