如何判断webbrowser 最后一次加载?
WebBrowserReadyState.Complete 并不准确,因为网页可能会跳转,也可能内部含有多个ifrem
然而用绑定事件 WebBrowserNavigatedEventHandler 加计数器 或者 用e.Url 来判断,这两种方式在特定情况下可行,比如明确知道某网站url,这时候一般计数是固定的,e.Url也是固定的。
但是这种方法不通用,换个网站可能就不行了。
有没有可以确定webbrowser是最后一次加载的靠谱方法呢?
------解决方案--------------------Complete 和 basying 貌似都不行
------解决方案-------------------- IoleCOntainer::Eunmoject判断每个框架加载是否完成即可
------解决方案--------------------
不考虑效率的话就用webbrower
设置个默认时间
考虑效率的话 用 httprequest httpresponse 黑屏操作
------解决方案-------------------- //等待页面加载完毕
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
System.Windows.Forms.Application.DoEvents();
}
------解决方案--------------------如果你只是想知道网页有没有加载完毕,用定时器判断一下Complate状态,又或者截取到Complete后做你想做的。有时候遇到网络不给力,加载一个小时都不会加载成功,所以你总需要定时器来重置。
------解决方案--------------------
//等待页面加载完毕
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
System.Windows.Forms.Application.DoEvents();
}
这是没用的,因为第二次跳转后也是会引发complete状态,几次跳转可能就有几次 ReadyState
你确认你试过了?我指的是用webBrowser的ReadState,而不是某一个dom的ReadState.
------解决方案--------------------
Complete 和 basying 貌似都不行
确实不行,尤其是存在js跳转的情况