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

请问怎么让webBrowser完全加载完毕后,再执行程序?

webbrowser打开一个网址,然后再检索里面的HTML,

webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

它什么会执行两次呢? 第一次检索结果不满意,网页里有JS得完全让页面加载完毕,第二次才能得到想要的结果~~


请问怎么让webBrowser完全加载完毕后,再执行程序呢?

------解决方案--------------------
引用:
webbrowser打开一个网址,然后再检索里面的HTML,

webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

它什么会执行两次呢? 第一次检索结果不满意,网页里有JS得完全让页面加载完毕,第二次才能得到想要的结果~~


请问怎么让webBrowser完全加载完毕后,再执行程序呢?

webBrowser——DocumentCompleted就是有多少个调用JS或页面他就执行多少次。你要想调一次的就用
axWebBrowser用另一种Active控件才有这个调用当前页所调用的页面与JS加载完后执行,去codeproject找这个程序上面有列子
------解决方案--------------------
WebBrowser载入一个页面后DocumentCompleted事件会执行两次,但这两次的ReadyState状态不一样,分别是Intercative和Complete。而MSDN对这两种状态值的解释是:Complete该控件已完成新文档及其所有内容的加载;Interactive该控件已经加载足够的文档以允许有限的用户交互,比如单击已显示的超链接。由此可见,实际上DocumentCompleted事件会在Interactive状态和Complete状态各调用一次,那么我们可以根据我们的需要来判断到底需要那一次
下面文章中介绍了详细的解决方案:
http://www.cnblogs.com/rchlz/archive/2009/02/27/1399274.html
并不需要使用Active控件,


------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:


webbrowser打开一个网址,然后再检索里面的HTML,

webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

它什么会执行两次呢? 第一次检索结果不满意,网页里有JS得完全让页面加载完毕,第二次才能得到想要的结果~~


请问怎么让webBrowser完全加载完毕后,再执行程序呢?

webBrowser——DocumentCompleted就是有多少个调用JS或页面他就执行多少次。你要想调一次的就用
axWebBrowser用另一种Active控件才有这个调用当前页所调用的页面与JS加载完后执行,去codeproject找这个程序上面有列子




还有个问题,使用Thread.Sleep()方法,想让它停顿下加载剩下的页面,为什么会整个页面都停顿了,就是无法继续加载呢


Sleep是让当前的线程睡眠。线程停了当然在此线程内的方法全停了呀