2011-08-24 61 views
1

我使用VBA(Excel)來操作Internet Explorer中加載的網頁中的下拉框。下拉框中附有一些javascript,以便在更改下拉選項時頁面的UI控件將會更改。如何在Internet Explorer中調用JavaScript DOM

我使用下面的函數(自動)從下拉列表中選擇一個選項。它會更改保存箱的值,但不會觸發UI更改(與手動更改下拉框時相比)。

Sub selectFromDropdown(ByRef dropdown As HTMLSelectElement, ByVal optionName As String) 
    Dim opts 
    Dim opt As HTMLOptionElement 

    dropdown.Focus 
    dropdown.setCapture 
    Set opts = dropdown.children 
    For i = 1 To opts.Length 
     Set opt = opts.Item(i) 
     If opt.Text = optionName Then 
      opt.Selected = True 
      dropdown.selectedIndex = opt.Index 
      Exit For 
     End If 
    Next 
    dropdown.releaseCapture 
End Sub 

那麼我怎樣才能觸發附加到這個下拉框的JavaScript?或者一般來說,我如何通過MS Internet Explorer提供的API以編程方式激活事件?謝謝。

+0

非常有趣的,但並不是說所有後面這些自動化的力網頁測試工具!你知道他們嗎? – Martin08

+1

@ Martin08,VBA + IE + JavaScript對我來說聽起來像是受虐狂。這些項目中的任何一項*可能都沒問題;結合所有三個是我做噩夢的事情。 – zzzzBov

+0

什麼是URL? – JimmyPena

回答

0

當您設置組合框值時,顯式調用您的javascript函數。

子selectFromDropdown(爲ByRef下拉作爲HTMLSelectElement,BYVAL OPTIONNAME作爲字符串) 昏暗選擇採用 昏暗opt作爲HTMLOptionElement

dropdown.Focus 
dropdown.setCapture 
Set opts = dropdown.children 
For i = 1 To opts.Length 
    Set opt = opts.Item(i) 
    If opt.Text = optionName Then 
     opt.Selected = True 
     dropdown.selectedIndex = opt.Index 
     'Call hear javascript function. 
     Exit For 
    End If 
Next 
dropdown.releaseCapture 

結束子

相關問題