首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么判断webbrowser 最后一次加载

2013-12-05 
如何判断webbrowser 最后一次加载?WebBrowserReadyState.Complete 并不准确,因为网页可能会跳转,也可能内

如何判断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跳转的情况下,比如一个不是真实的url实际访问是跳转后的地址,这种情况第一次跳转连complete都不触发,比较郁闷


不考虑效率的话就用webbrower
设置个默认时间
考虑效率的话 用 httprequest httpresponse 黑屏操作


 httprequest httpresponse 这两个操作对普通网页还行,但是对存在ajax异步加载的页面就无效了,取到的网页代码是js没有运行过的空标签。

你要是找到ajax的加载路径和参数就可以用这个
cookie可以获取的
[解决办法]
webbrower
我也不知道啥时候加载完  就是不考虑效率 设置一个比较长的时间

热点排行