如何判断C# webbrower页面是否加载完毕方法

本文介绍如何在C#中判断webbrowser页面是否加载完毕,包括使用计数器、检查URL、区分Interactive和Complete状态等方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何判断C# webbrower页面是否加载完毕方法 ?

  • |
  • 浏览:116
  • |
  • 更新:2014-08-21 14:48

webbrower里面,每次打开一个页面,里面有多个iframe,那么navigated和completed会执行多次,如何让它只在最后正规页面加载完再执行一次completed事件呢?经过研究总结,下面有三种可以实现判断:

方法/步骤

  1. 1

    第一种方法:////////计数器递增函数////////   public void counteradd(object sender, EventArgs e)        {            counter++;//一次navigated就加一次        }/////////页面加载完要执行的函数///////////public void go(object sender, EventArgs e)        {               counter4--;//一次completed就减一次               if (0 == counter4)//等于0表示刚好加载完鸟           {  要干什么就写这里了    }}/////////把事件handle一下/////////this.webBrowser1.Navigated += new System.Windows.Forms.WebBrowserNavigatedEventHandler(counteradd);   this.webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(go);

  2. 2

    第二种方法:若是一个页面中含有多个框架页,那么在每个框架页加载完成时也可能触发一次DocumentCompleted事务(MSDN对其申明是在多个的帧的景象下DocumentComplete获取触发多次。并非每个框架将触发此事务,但触发DownloadBegin事务的每个框架将触发响应的DocumentComplete事务)。  this.webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(go);  private void go(object sender, WebBrowserDocumentCompletedEventArgs e)        {            if (e.Url.ToString() != webBrowser1.Url.ToString())                return;//不断拒绝,只有URL是webbrowser1的navigate地址才接受            else              {               要干什么就写这里了 }}

  3. 3

    第三种方法:WebBrowser载入一个页面后DocumentCompleted事务会履行两次,但这两次的ReadyState状况不一样,分别是Intercative和Complete。而MSDN对这两种状况值的申明是:Complete该控件已完成新文档及其所有内容的加载;Interactive该控件已经加载足够的文档以容许有限的用户交互,比如单击已显示的超链接。由此可见,实际上DocumentCompleted事务会在Interactive状况和Complete状况各调用一次,那么我们可以按照我们的须要来断定到底须要那一次。解决办法实例代码如下:    this.webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(go);  private void go(object sender, WebBrowserDocumentCompletedEventArgs e)        {if(webBrowser1.ReadyState != WebBrowserReadyState.Complete)                  return; else{ 要干什么就写这里了}}基本就三种方法了,在有firame的页面里面,第一种=第二种+第三种,自己想想为什么。再搞不定那就只能god bless you 了,别找piikee了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值