EO.WebBrowser使用

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执行会报错,需要进行异常处理。

 

 

 

你可能感兴趣的:(.net,EO.WebBrowser)