热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

EO.WebBrowser使用

1.使用C#自带webbrowser方式网页兼容性不太好,而且需要系统本身高版本ie。2.C#自带webbrowser对于dom元素等执行效率低下。好了下面上菜&

1.使用C#自带webbrowser方式网页兼容性不太好,而且需要系统本身高版本ie。

2.C#自带webbrowser对于dom元素等执行效率低下。

好了下面上菜:EO.WebBrowser目前版本是20.3.63 但是未使用过,目前程序使用15.1.94.2版本,此版本安装后会自动在工具箱安装webControl,webView控件。替代webbrowser则主要使用这两个控件即可,我安装了高版本的程序,未发现这两个控件,可能是姿势不对把,就安装了个低版本的。

如果安装高版本的未发现控件客尝试使用代码方式试试:

private EO.WebBrowser.WinForm.WebControl webControl1;
private EO.WebBrowser.WebView webView1;private void InitializeComponent()
{this.webControl1 = new EO.WebBrowser.WinForm.WebControl();this.webView1 = new EO.WebBrowser.WebView(); this.panel1.Controls.Add(this.webControl1);this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;this.panel1.Location = new System.Drawing.Point(3, 17);this.panel1.Name = "panel1";this.panel1.Size = new System.Drawing.Size(682, 307);this.panel1.TabIndex = 1;// // webControl1// this.webControl1.BackColor = System.Drawing.Color.White;this.webControl1.Dock = System.Windows.Forms.DockStyle.Fill;this.webControl1.Location = new System.Drawing.Point(0, 0);this.webControl1.Name = "webControl1";this.webControl1.Size = new System.Drawing.Size(682, 307);this.webControl1.TabIndex = 4;this.webControl1.Text = "webControl1";this.webControl1.WebView = this.webView1;// // webView1// this.webView1.AllowDropLoad = true;this.webView1.BeforeSendHeaders += new EO.WebBrowser.RequestEventHandler(this.webView1_BeforeSendHeaders);this.webView1.NewWindow += new EO.WebBrowser.NewWindowHandler(this.webView1_NewWindow);this.webView1.CertificateError += new EO.WebBrowser.CertificateErrorHandler(this.webView1_CertificateError);
}

 

下面详细说下这三个事件的使用:

BeforeSendHeaders在请求发送前事件:我们可以通过此请求拦截某固定请求的信息,哪些信息就不用我说了把嘿嘿。。

webView1_NewWindow这个必须要注册不然在页面中用户点击会显示异常弹窗,为什么?(因为你没付钱啊。)

webView1_CertificateError这个必须要注册不然固定时间会一直弹窗提示你没安装证书,因为你没付钱啊。

我们使用webbrowser可以很方便的获取当前登录网站的COOKIE信息,注意(webbrowser是基于ie内核,相当于你登录在IE上,如果每次不清除缓存会串。。。)EO.WebBrowser则不会

但是也面临一个问题获取登录COOKIE难搞哦。。。所以BeforeSendHeaders帮助了我们一下。

private void webView1_BeforeSendHeaders(object sender, EO.WebBrowser.RequestEventArgs e)
{var info = e.Request.COOKIEs.AllKeys;
}

 EO.Base.Runtime.Exception += new EO.Base.ExceptionEventHandler(webView1_ExceptionError);这个事件自己注册把,EO运行时异常处理。

——————————————————————————————

下面来点js的处理

string script = "document.getElementById('loginid').value";

 var info = webView1.EvalScript(script);//获取js执行的返回值,注意js执行会报错,需要进行异常处理。

 

 

 


推荐阅读
author-avatar
mobiledu2502927067
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有