繁体   English   中英

如何从Internet Explorer DOM调用JavaScript

[英]how to invoke javascript from Internet Explorer DOM

我正在使用VBA(Excel)来操纵Internet Explorer中加载的网页中的下拉框。 下拉框附加了一些javascript,因此,当更改下拉选择时,页面的UI控件也会更改。

我使用以下功能(自动)从下拉菜单中选择一个选项。 它更改了保管箱的值, 但不触发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以编程方式触发事件? 谢谢。

您应该显示足够的HTML,以便我们可以看到附带的javascript和事件的类型。

可以说这是“ onclick”

你可以有

opt.Selected = True
opt.FireEvent "onclick"

设置组合框值时,显式调用javascript函数。

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
            'Call hear javascript function.
            Exit For
        End If
    Next
    dropdown.releaseCapture
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM