我是靠谱客的博主 醉熏柚子,最近开发中收集的这篇文章主要介绍Webbrowser 在web项目中的使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 1  
 2         string htmlstr = string.Empty;
 3 [STAThread]
 4         public string GetHtmlByWeb(string url)
 5         {
 6             try
 7             {
 8 
 9                 RunWithSingleThread(url);
10                 DateTime dtime = DateTime.Now;
11                 double timespan = 0;
12 //等待 页面加载完毕 并获取到参数
13                 while (string.IsNullOrWhiteSpace(htmlstr) && timespan < 10)
14                 {
15                     DateTime time2 = DateTime.Now;
16                     timespan = (time2 - dtime).TotalSeconds;
17                 }
18                 // double lo = DateTime.Now.Subtract(dtime).TotalSeconds;
19             }
20             catch (Exception)
21             {
22               
23             }
24             finally
25             {
26                 if (t != null && t.ThreadState == ThreadState.Running)
27                 {
28                     t.Abort();
29                 }
30             }
31            
32             return htmlstr;
33         }
34 
35 
36 //线程
37  private Thread t;
38 //异步执行WebBrowser
39         public void RunWithSingleThread(object url)
40         {
41             ParameterizedThreadStart ps = new ParameterizedThreadStart(GetHtmlWithBrowser);
42             t = new Thread(ps);
43             t.IsBackground = true;
44             t.ApartmentState = ApartmentState.STA;
45             t.Start(url);
46         }  
47 
48 private WebBrowser wb;
49         private void GetHtmlWithBrowser(object url)
50         {
51             htmlstr = string.Empty;
52 
53             wb = new WebBrowser();
54             wb.ScriptErrorsSuppressed = true;  //防止脚本异常跳出弹窗
55             wb.ScrollBarsEnabled = true;
56             wb.Navigate(url.ToString());
57             
58             wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentCompleted);
59             while (wb.ReadyState != System.Windows.Forms.WebBrowserReadyState.Complete)
60             {
61                 System.Windows.Forms.Application.DoEvents(); //避免假死,若去掉则可能无法触发 DocumentCompleted 事件。
62             }
63 
64         }
65 //获取内容
66  public void DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
67         {
68             htmlstr = wb.Document.Body.InnerHtml;
69 
70         }

 

转载于:https://www.cnblogs.com/dxqNet/p/8514520.html

最后

以上就是醉熏柚子为你收集整理的Webbrowser 在web项目中的使用的全部内容,希望文章能够帮你解决Webbrowser 在web项目中的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部