webbrowser 修改页面元素操作

2024-03-14 22:48

本文主要是介绍webbrowser 修改页面元素操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

     mshtml  WebBrowser 类:

    1. WebBrowser_V1Class ,继承自IWebBrowser, WebBrowser_V1, DWebBrowserEvents_Event, IWebBrowser2, DWebBrowserEvents2_Event。

    2.WebBrowserClass类,继承自 IWebBrowser2, WebBrowser, DWebBrowserEvents2_Event, IWebBrowser, DWebBrowserEvents_Event


     mshtml WebBrowser 接口

    1.WebBrowser接口继承自 IWebBrowser2, DWebBrowserEvents2_Event,几乎包含了所有的webbrowser 方法和事件以及属性。

    2.WebBrowser_V1接口继承自IWebBrowser, DWebBrowserEvents_Event比webbrowser接口低一个档次 。


    用法:mshtml webbrowser  类需要托管的方法CreateWrapperOfType来进行相应的COM 组件封装,而接口则可直接应用


    例子:更改百度输入框

            webBrowser1.Navigate(@"http://www.baidu.com/");
            while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) System.Windows.Forms.Application.DoEvents();       
              HtmlElement cmd = webBrowser1.Document.GetElementById("kw");

            mshtml.IHTMLElement2 iht2 = (mshtml.IHTMLElement2)(cmd.DomElement);
            ement = (mshtml.HTMLInputElementClass)(cmd.DomElement);

            mshtml.IHTMLStyle style=ement.style;//获取到样式接口
            ement.select();
            style.height =10;  
            ement.height = 10;
            ement.value = "金庸江湖";
            style.background = "FFF8DC";

     以上效果修改加载后百度输入框的前景色,大小,和样式等。

 

    //(webBrowser1.ActiveXInstance as SHDocVw.WebBrowser_V1).NewWindow+=new    SHDocVw.DWebBrowserEvents_NewWindowEventHandler(Form3_NewWindow);
         
            (webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).NewWindow2 += new SHDocVw.DWebBrowserEvents2_NewWindow2EventHandler(Form3_NewWindow2);


            IHTMLElement2 ht2 = webBrowser1.Document.GetElementById("kw").DomElement as IHTMLElement2;
            


            HTMLInputElementClass ement = (mshtml.HTMLInputElementClass)ht2;


            ement.HTMLInputTextElementEvents_Event_onclick+=new HTMLInputTextElementEvents_onclickEventHandler(ement_HTMLInputTextElementEvents_Event_onclick);


            ement.HTMLInputTextElementEvents_Event_onmouseover+=new HTMLInputTextElementEvents_onmouseoverEventHandler(ement_HTMLInputTextElementEvents_Event_onmouseover);


            //MessageBox.Show(ht2.scrollHeight.ToString());
            //mshtml.HTMLDocumentEvents_Event et = ht2 as mshtml.HTMLDocumentEvents_Event; Document事件用webbrowser.document来初始化或者实例化
            //input事件用intput标记的元素实例化或者初始化
            //et.onclick+=new HTMLDocumentEvents_onclickEventHandler(et_onclick);

    

  

      

这篇关于webbrowser 修改页面元素操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/809964

相关文章

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

禁止HTML页面滚动的操作方法

《禁止HTML页面滚动的操作方法》:本文主要介绍了三种禁止HTML页面滚动的方法:通过CSS的overflow属性、使用JavaScript的滚动事件监听器以及使用CSS的position:fixed属性,每种方法都有其适用场景和优缺点,详细内容请阅读本文,希望能对你有所帮助... 在前端开发中,禁止htm

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

MySQL修改密码的四种实现方式

《MySQL修改密码的四种实现方式》文章主要介绍了如何使用命令行工具修改MySQL密码,包括使用`setpassword`命令和`mysqladmin`命令,此外,还详细描述了忘记密码时的处理方法,包... 目录mysql修改密码四种方式一、set password命令二、使用mysqladmin三、修改u