如何判断webbrowser 最后一次加载?
WebBrowserReadyState.Complete 并不准确,因为网页可能会跳转,也可能内部含有多个ifrem
然而用绑定事件 WebBrowserNavigatedEventHandler 加计数器 或者 用e.Url 来判断,这两种方式在特定情况下可行,比如明确知道某网站url,这时候一般计数是固定的,e.Url也是固定的。
但是这种方法不通用,换个网站可能就不行了。
有没有可以确定webbrowser是最后一次加载的靠谱方法呢? webbrowser? 加载 Complete
[解决办法]
Complete 和 basying 貌似都不行
[解决办法]
IoleCOntainer::Eunmoject判断每个框架加载是否完成即可
[解决办法]
//等待页面加载完毕
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
System.Windows.Forms.Application.DoEvents();
}
//等待页面加载完毕
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
System.Windows.Forms.Application.DoEvents();
}
这是没用的,因为第二次跳转后也是会引发complete状态,几次跳转可能就有几次 ReadyState
Complete 和 basying 貌似都不行
确实不行,尤其是存在js跳转的情况下,比如一个不是真实的url实际访问是跳转后的地址,这种情况第一次跳转连complete都不触发,比较郁闷
不考虑效率的话就用webbrower
设置个默认时间
考虑效率的话 用 httprequest httpresponse 黑屏操作
httprequest httpresponse 这两个操作对普通网页还行,但是对存在ajax异步加载的页面就无效了,取到的网页代码是js没有运行过的空标签。