透過DOM操作WebBrowser內的控制項

透過DOM操作WebBrowser內的控制項

如果在Win Form的WebBrowser要去控制內含的網頁上的控制項, 要怎處理呢?

可以透過下列方式:

1. 首先,我們在Win Form上設定WebBrowser的URL - http://yzcomm.googlepages.com/h004.html (找一個簡單的網頁)

2. 然後,我們希望去調整網頁下拉選單的選項。

3. 我們先觀察這個網頁的原始碼,然後找到有關下拉選單的部分:

<CENTER><FONT color=#808080>範例:
<SELECT style="FONT-SIZE: 8pt; FONT-FAMILY: Verdana; LETTER-SPACING: 1pt" size=1 name=choice>
    <OPTION value="" selected>請選擇</OPTION> 
    <OPTION>------------------------</OPTION> 
    <OPTION value=http://colaccl.com&amp;_blank>colaccl.com</OPTION>
    <OPTION value=http://blog.yam.com/colaccl&amp;_blank>cola's blog</OPTION> 
    <OPTION value=http://www.wretch.cc/album/colaccl&amp;_blank>cola's album</OPTION>
</SELECT> 
<INPUT style="FONT-SIZE: 8pt; FONT-FAMILY: Verdana; LETTER-SPACING: 1pt" onclick=jump(this.form) type=button value=Go!> <BR> 
</FONT>
</CENTER>
</FORM>
<FORM name=detectform>
<CENTER>

 

從中,我們可以看到下拉選單的name是choice.

 

4. 寫程式碼來調整:

            If HTMLtag.TagName = "SELECT" AndAlso HTMLtag.GetAttribute("name") = "choice" Then
                For v = 0 To HTMLtag.Children.Count - 1
                    If Trim(DirectCast(HTMLtag.Children(v), System.Windows.Forms.HtmlElement).InnerText) = Trim("colaccl.com") Then
                        DirectCast(HTMLtag.Children(v), System.Windows.Forms.HtmlElement).SetAttribute("selected", "selected")
                        Exit For
                    End If
                Next
           End If
Next

 

針對TagName為Select以及name屬性為choice(就是我們要的那個下拉選單), 然後根據InnerText去判斷我們想要的選項.

最後設定其為被選擇的項目.

 

原本:

image

 

按下按鈕後:

image

 

 

如果您有微軟技術開發的問題,可以到MSDN Forum發問。

如果您有微軟IT管理的問題,可以到TechNet Forum發問喔。