如何让网页内部的网页浏览器控件触发 vb.net Windows窗体的功能

how to let webpage inside webbrowser control trigger vb.net function of windows form?

本文关键字:网页 net vb Windows 功能 窗体 浏览器 内部 网页浏览 控件      更新时间:2023-09-26

我在 Windows 窗体应用程序中放置了一个 Web 浏览器控件,我希望我的可视 basic.net 脚本知道是否在 Web 浏览器控件加载的网页内单击了按钮。我想一定有一种方法可以做到这一点,到目前为止,我知道如何通过 ID 访问文档元素,但我不知道如何知道他们的事件是否被触发。感谢您的帮助!

Imports Gecko
Public Class Form1
    Public myBrowser As GeckoWebBrowser
    Public Sub New()
        InitializeComponent()
        Gecko.Xpcom.Initialize("c:'xulrunner")
        myBrowser = New GeckoWebBrowser()
        myBrowser.Parent = Me
        myBrowser.Dock = DockStyle.Fill
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        myBrowser.Navigate("example.com")
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' MessageBox.Show(myBrowser.Document.GetElementById("divID").TextContent())
    End Sub
    Private Sub divclick(ByVal sender As Object, ByVal e As EventArgs) Handles myBrowser.Document.GetElementById("divID").Click
        'codes that i need to be run
    End Sub
End Class

您说您知道如何通过 ID 获取文档元素。 获得HtmlElement对象后,可以向其事件添加事件处理程序。 例如:

AddHandler myHtmlElement.Click, AddressOf MyElementClicked

然后,每次单击网页中的该元素时都会调用 MyElementClicked 方法:

Private Sub MyElementClicked(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
    ' ...
End Sub

通常,您会将事件处理程序添加到 Web 浏览器控件的 DocumentCompleted 事件处理程序中的 HTML 元素中。