從C#中訪問DHTML DOM對象 )

來源:互聯網
上載者:User

摘要:本文說明了如何利用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)<br /> {<br /> object Zero = 0;<br /> object EmptyString = "";<br /> axWebBrowser1.Navigate(textBox1.Text,ref Zero, ref EmptyString, ref EmptyString, ref EmptyString);<br /> }<br />

9,切換表單到設計模式,選擇Browser控制項,點擊屬性視窗上的“Event(事件)”表徵圖,此時Web Browser事件對話方塊開啟,雙擊Document Complete事件,在axWebBrowser1_DocumentComplete的事件處理過程裡輸入如下的代碼:

<br /> private void axWebBrowser1_DocumentComplete(object sender,<br /> AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e)<br /> {<br /> IHTMLDocument2 HTMLDocument =(IHTMLDocument2) axWebBrowser1.Document;<br /> IHTMLElementCollection links = HTMLDocument.links;</p><p> listBox1.Items.Clear();</p><p> foreach (HTMLAnchorElementClass el in links)<br /> {<br /> listBox1.Items.Add(el.outerHTML);<br /> }<br /> }<br />

10,在Form1.cs檔案的頂部輸入:

using mshtml;

11,按F5,運行表單,點擊“瀏覽頁面”按鈕,將會看到如下的結果,是不是很爽:)

src:http://blog.csdn.net/derny/archive/2004/08/30/89276.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.