从C#中访问DHTML DOM对象

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

摘要:本文说明了如何利用Microsoft Web Browser(Web浏览器)控件和Microsoft Document Object Model (DOM)(文档对象模型),用编程的方式来访问Web中的每一个元素。

要访问Web页面的元素,首先必须引用Web Browser控件,以便应用其属性、对象、方法和事件。通过调用Navigate方法,就可以用Web Browser来打开页面。但要用程序进行访问,必须等到文档全部下载完了之后才能够进行,即文档的Complete事件发生;然后把Web Browser对象的Document属性转换成IHTMLDocument2接口对象,这样就可以访问该对象的集合了,比如:Link集合,Image集合等,这些集合将返回IHTMLElementCollection对象。本文以Link集合做例子来进行阐述,返回你指定URL页面的全部的链接。

下面就是实现这一功能的简单过程:

1,打开Microsoft Visual Studio .NET,新建一个Visual C# Windows Application(Windows应用程序),默认名称为Form1。

2,在Solution Explorer(解决方案浏览器)中,用右键点击References(引用)文件夹,然后选择 Add Reference(添加引用)的选择项,这时会打开Add Reference(添加引用)对话框。

3,点击.NET标签页,双击Microsoft.mshtml组件,然后点击OK(确定)按钮。

4,打开ToolBox(工具箱),在任何一个工具项上点击右键,选择Customize Toolbox(自定义工具条),此时,自定义工具条对话框就打开了。

5,点击COM Components(COM 组件)标签页,使Microsoft Web Browser前的复选框选中。点OK(确定)按钮。此时,名为Explorer的Web Browser控件就添加到了工具箱内。

6,选择Explorer控件,把它添加到Form1窗体内,名称为默认的axWebBrowser1。

7,在Browser控件的上面添加TextBox,在browser控件的下面添加ListBox,名称分别为默认的Textbox1和Listbox1,Textbox1的Text属性设置为:http://lucky_elove.www1.dotnetplayground.com/;在TextBox后面添加Button,Text改为“浏览页面”,名称为Button1。此时,页面将入下图所示:

8,双击Button1,在Button1_Click的事件里输入如下的代码:

    private void Button1_Click(object sender, System.EventArgs e)
    {
      object Zero = 0;
      object EmptyString = "";
      axWebBrowser1.Navigate(textBox1.Text,ref Zero, ref EmptyString, ref EmptyString, ref EmptyString);
    }

9,切换窗体到设计模式,选择Browser控件,点击属性窗口上的“Event(事件)”图标,此时Web Browser事件对话框打开,双击Document Complete事件,在axWebBrowser1_DocumentComplete的事件处理过程里输入如下的代码:

 
  private void axWebBrowser1_DocumentComplete(object sender,
     AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e)
    {
      IHTMLDocument2 HTMLDocument =(IHTMLDocument2) axWebBrowser1.Document;
      IHTMLElementCollection links = HTMLDocument.links;

      listBox1.Items.Clear();

      foreach (HTMLAnchorElementClass el in links)
      {
        listBox1.Items.Add(el.outerHTML);
      }
   }

10,在Form1.cs文件的顶部输入:

  using mshtml;

11,按F5,运行表单,点击“浏览页面”按钮,将会看到如下的结果,是不是很爽:)

 

PHP与前端技术全栈开发权威手册合集 在PHP中,使用class关键字来定义一个类。类是对象的模板,包含属性(成员变量)和方法(成员函数)。每个类可以被“实例化”为多个独立的对象,每个对象拥有自己的属性值但共享相同的方法逻辑。php// 实例化对象// 输出: Hi, I'm Alice, email: alice@example.com原则实现方式效果数据隐藏使用private防止非法修改状态行为封装提供公共接口方法统一入口校验与日志记录权限隔离。 阅读详情

相关推荐

c#操作浏览器dom对象

NULL 博文链接:https://code.iteye.com/blog/362729

BlazorServer中C#与JavaScript的相互调用

​ 虽然BlazorServer中推荐使用C#在razor页面中的替代JavaScript来完成逻辑的编写,但当需要使用第三方的javascript文件/组件里的内容时,则难免要在C#中调用其方法或对象。反之当你的(用到第三方组件的)Javascript代码想要和后台交互时,则需要调用C#的代码。好在BlazorServer中这两种通信都是支持的。下面将介绍其具体的实现方式。

jamenu的博客 2556

c#操作html dom元素,C#获取与修改HTML DOM元素信息

C#和JavaScript交互首先要解决C#读取HTML DOM元素的问题。 在System.Windows.Browser命名空间下,有一个HtmlDocument、HtmlPage、HtmlElement等类,可以用来读取HTML DOM元素。其读取方法和JavaScript如出一辙。引用内容: //初始化一个document HtmlDocument document = HtmlPage...

weixin_39636610的博客 1666

C# 判断网页是否下载完毕

  .style1 { FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #ff6699}.yjx { BORDER-RIGHT: #f0f0f0 0px solid; BORDER-TOP: #f0f0f0 0px solid; BORDER-LEFT

wjw806[旺旺]的专栏 1334

C# XML解析之DOM模型

DOM的工作方式是:首先将XML文档一次性的装入内存,然后根据文档中定义的元素和属性在内存中创建一个“树型结构”也就是一个文档对象模型,这里的含义其实是把文档对象化,文档中每个节点对应着模型中一个对象,而我们都知道对象提供编程接口,所以在Application中我们正是使用这组对象访问XML文档进而操作XML文档。 下图阐述了Application和DOM交互的过程: DOM在内...

weixin_30617797的博客 274

[转]从C#访问DHTML DOM对象

C#访问DHTML DOM对象http://www.zzchn.com/edu/20080727/91906.shtmlC# 实现基本思路为:使用从CDHtmlDialog或者CHtmlView继承的类来创建一个浏览器窗口,并打开你指定的URL。在DocumentComplete事件(虚函数)中获得浏览器容器的IHTMLDocument2接口(文档接口)。从文档接口中扫描DOM树,寻找你希望的...

weixin_34384915的博客 102

Jquery json xml Dom DHtml Ajax prototype概念理论

Jquery是继prototype之后又一个优秀的Javascrīpt框架。它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,...

hi_beijing的专栏 172

[Javascript] DOM

DOM树。

Stephanie翟倩 403

学习笔记之Dom_01

一、DOM(Document Object Model,文档对象模型) dom是浏览器解释完html标签后,为每个标签生成的对应的标签对象。这些对象储存在浏览器缓存中,一旦网页关闭,这些dom对象就会被销毁。(JavaScript与DOM之间的关系就是C#与.Net之间的关系 (一)DOM的意义 它的意义就是映射相应的文档对象,HTML DOM映射一个网页的方方面面的内容,他映射一个网页有什

J_adam的专栏 502

DOM 笔记

DOM就是HTML页面的模型,将每个标签作为一个对象,javascript通过调用DOM中的属性,方法对网页中的文本框,层等进行编程控制 javascript——》DOM就是C#——》.NET FRAMEWORK DOM也像winform一样,通过事件,属性,方法编程。 CSS+javascript+DOM=DHTML 一,window对象,代表当前浏览器窗口,使用window对象...

weixin_30780221的博客 99

Ajax之一: XMLHttpRequest (应用环境: Windows + IE + .NET[C#])

Ajax   由   HTML、JavaScript™   技术、DHTML   和   DOM   组成 Ajax关键是一个称为XMLHttpRequest的JavaScript对象,能够用来发送HTTP请求,接收应答,并将其解析为XML. XMLHttpRequest的方法和属性如下: open():建立到服务器的新请求 send():向服务器发送请求 用法:xhr.open  

swfcsunboy 1513

《JavaScript DOM 编程艺术》读书笔记

Author:chemandy 前言 ◇DOM脚本编程技术背后的思路和原则:预留退路、循序渐进、以用户为中心的设计。 --------------------------------------------------------------------------------------- 第1章 JavaScript简史 ◇BOM浏览器对象模型,允许访问和操控

水泽木兰 824

js与C#代码相互调用

WebBrowser.ObjectForScripting 属性:取或设置一个对象,该对象可由显示在 WebBrowser 控件中的网页所包含的脚本代码访问。 使用该属性启用 WebBrowser 控件承载的网页与包含 WebBrowser 控件的应用程序之间的通信。使用该属性可以将动态 HTML (DHTML) 代码与客户端应用程序代码集成在一起。为该属性指定的对象可作为 window.ext...

tanyeqin的博客 462

Third,C#

Ajax: 需要以下技术: DHtml: DHTML是DynamicHTML的简称,就是动态的html(标准通用标记语言下的一个应用),是相对传统的静态的html而言的一种制作网页的概念。所谓动态HTML(Dynamic HTML,简称DHTML),其实并不是一门新的语言,它只是HTML、CSS和客户端脚本的一种集成,即一个页面中包括html+css+javascript(或其它客户端脚本...

weixin_30387663的博客 83
上一篇: C#农历
下一篇: ASP.NET数据访问
derny
博客等级 码龄23年 16粉丝 189原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值