[quote=引用 1 楼 wyd1520 的回复:] [quote=引用 楼主 id8588 的回复:] webbrowser打开一个网址,然后再检索里面的HTML, webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 它什么会执行两次呢? 第一次检索结果不满意,网页里有JS得完全让页面加载完毕,第二次才能得到想要的结果~~ 请问怎么让webBrowser完全加载完毕后,再执行程序呢?
WebBrowser载入一个页面后DocumentCompleted事件会执行两次,但这两次的ReadyState状态不一样,分别是Intercative和Complete。而MSDN对这两种状态值的解释是:Complete该控件已完成新文档及其所有内容的加载;Interactive该控件已经加载足够的文档以允许有限的用户交互,比如单击已显示的超链接。由此可见,实际上DocumentCompleted事件会在Interactive状态和Complete状态各调用一次,那么我们可以根据我们的需要来判断到底需要那一次 下面文章中介绍了详细的解决方案: http://www.cnblogs.com/rchlz/archive/2009/02/27/1399274.html 并不需要使用Active控件,
[quote=引用 楼主 id8588 的回复:] webbrowser打开一个网址,然后再检索里面的HTML, webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 它什么会执行两次呢? 第一次检索结果不满意,网页里有JS得完全让页面加载完毕,第二次才能得到想要的结果~~ 请问怎么让webBrowser完全加载完毕后,再执行程序呢?
webbrowser打开一个网址,然后再检索里面的HTML, webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 它什么会执行两次呢? 第一次检索结果不满意,网页里有JS得完全让页面加载完毕,第二次才能得到想要的结果~~ 请问怎么让webBrowser完全加载完毕后,再执行程序呢?
说是加载一个网页,但里面可以有许多页的,这要看网页是否为框架,有没有嵌套 IFRAME 等, 你应该用 e.Url 来识别是哪一页加载完成了,看情况再执行程序。
[quote=引用 3 楼 id8588 的回复:] [quote=引用 1 楼 wyd1520 的回复:] [quote=引用 楼主 id8588 的回复:] webbrowser打开一个网址,然后再检索里面的HTML, webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 它什么会执行两次呢? 第一次检索结果不满意,网页里有JS得完全让页面加载完毕,第二次才能得到想要的结果~~ 请问怎么让webBrowser完全加载完毕后,再执行程序呢?
111,094
社区成员
642,554
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧