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

 

 

 


推荐阅读
  • HTML5 Web存储技术是许多开发者青睐本地应用程序的重要原因之一,因为它能够实现在客户端本地存储数据。HTML5通过引入Web Storage API,使得Web应用程序能够在浏览器中高效地存储数据,从而提升了应用的性能和用户体验。相较于传统的Cookie机制,Web Storage不仅提供了更大的存储容量,还简化了数据管理和访问的方式。本文将从基础概念、关键技术到实际应用,全面解析HTML5 Web存储技术,帮助读者深入了解其工作原理和应用场景。 ... [详细]
  • JavaScript XML操作实用工具类:XmlUtilsJS技巧与应用 ... [详细]
  • 在基于.NET框架的分层架构实践中,为了实现各层之间的松散耦合,本文详细探讨了依赖注入(DI)和控制反转(IoC)容器的设计与实现。通过合理的依赖管理和对象创建,确保了各层之间的单向调用关系,从而提高了系统的可维护性和扩展性。此外,文章还介绍了几种常见的IoC容器实现方式及其应用场景,为开发者提供了实用的参考。 ... [详细]
  • 在进行前端JavaScript国际化(i18n)的过程中,为了从cookie中获取语言信息并动态加载相应资源,我决定将语言检测逻辑和i18n初始化代码直接嵌入到index页面中,使用了Velocity模板引擎的语法。这种方法不仅简化了代码结构,还提高了语言切换的灵活性和响应速度。 ... [详细]
  • Unity3D 中 AsyncOperation 实现异步场景加载及进度显示优化技巧
    在Unity3D中,通过使用`AsyncOperation`可以实现高效的异步场景加载,并结合进度条显示来提升用户体验。本文详细介绍了如何利用`AsyncOperation`进行异步加载,并提供了优化技巧,包括进度条的动态更新和加载过程中的性能优化方法。此外,还探讨了如何处理加载过程中可能出现的异常情况,确保加载过程的稳定性和可靠性。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 本文探讨了使用JavaScript在不同页面间传递参数的技术方法。具体而言,从a.html页面跳转至b.html时,如何携带参数并使b.html替代当前页面显示,而非新开窗口。文中详细介绍了实现这一功能的代码及注释,帮助开发者更好地理解和应用该技术。 ... [详细]
  • 本文详细探讨了使用纯JavaScript开发经典贪吃蛇游戏的技术细节和实现方法。通过具体的代码示例,深入解析了游戏逻辑、动画效果及用户交互的实现过程,为开发者提供了宝贵的参考和实践经验。 ... [详细]
  • 本文总结了JavaScript的核心知识点和实用技巧,涵盖了变量声明、DOM操作、事件处理等重要方面。例如,通过`event.srcElement`获取触发事件的元素,并使用`alert`显示其HTML结构;利用`innerText`和`innerHTML`属性分别设置和获取文本内容及HTML内容。此外,还介绍了如何在表单中动态生成和操作``元素,以便更好地处理用户输入。这些技巧对于提升前端开发效率和代码质量具有重要意义。 ... [详细]
  • 本文探讨了如何通过检测浏览器类型来动态加载特定的npm包,从而优化前端性能。具体而言,仅在用户使用Edge浏览器时加载相关包,以提升页面加载速度和整体用户体验。此外,文章还介绍了实现这一目标的技术细节和最佳实践,包括使用User-Agent字符串进行浏览器识别、条件加载策略以及性能监控方法。 ... [详细]
  • 在 Angular Google Maps 中实现图片嵌入信息窗口的功能,可以通过使用 `@agm/core` 库来实现。该库提供了丰富的 API 和组件,使得开发者可以轻松地在地图上的信息窗口中嵌入图片。本文将详细介绍如何配置和使用这些组件,以实现动态加载和显示图片的功能。此外,还将探讨一些常见的问题和解决方案,帮助开发者更好地集成这一功能。 ... [详细]
  • 在MFC框架中,存在多个全局函数,用于在不同对象间获取信息或创建新对象。其中,`afxGetApp`函数尤为关键,它能够帮助开发者轻松获取当前应用程序的实例指针。本文将详细解析`afxGetApp`函数的内部机制及其在MFC应用程序中的具体应用场景,探讨其在提升代码可维护性和灵活性方面的优势。此外,还将介绍其他常用全局函数如`AfxWinInit()`和`AfxBeginThread()`的功能和使用方法,为开发者提供全面的参考。 ... [详细]
  • 字节码开发笔记:深入解析与应用技巧 ... [详细]
  • 本文介绍了一种利用PHP cURL库高效提取Sohu邮箱联系人列表的方法。通过设置错误报告级别、定义Cookie文件路径等关键步骤,确保了代码的稳定性和可靠性。经过实际测试,该方法在2012年3月24日被验证为有效,能够快速准确地获取联系人信息。此外,文章还提供了详细的代码示例和注意事项,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 如何使用 net.sf.extjwnl.data.Word 类及其代码示例详解 ... [详细]
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社区 版权所有