JS eventListener equivalent in VB 2010

JS eventListener equivalent in VB 2010

本文关键字:VB 2010 in equivalent eventListener JS      更新时间:2023-09-26

我有这个问题:我需要能够捕捉到我在Visual Basic webBrowser控件中加载的页面中DOM元素的变化。通常在Firefox的JavaScript中,我会这样做:element[0]. childnodes[1]。addEventListener("DOMAttrModified", functionX, true);其中element[0]是我需要监控的元素,child[1]是这个元素的第二个子元素,它的文本值发生了变化,我需要在它发生变化时捕捉它,而functionX是每次元素[0]. childnodes[1]发生变化时我想触发的函数/子。

我可以很容易地在JavaScript中做到这一点,但我有一个可怕的时间在Visual Basic 2010中实现这个在我用来实现浏览器的web浏览器控件。

我知道有像Dim del As New eventandler (addressofme . callglobaljsmethod)这样的东西,但我在实际实现这个时遇到了困难。有没有人知道如何在实际中做到这一点?

更新:我在VB2010中打开一个网页浏览器控件,像这样:WebBrowser1.Navigate(address.Text)然后监控页面。在这个网页上有一个id为"ctrlid"的文本字段。此控件的文本属性定期更改。当发生变化时,我需要捕捉事件并对其做出反应。

我三周前问过这个问题。与此同时,我确实找到了答案,我把它记录在这里,以防有人需要帮助。问题在于OnChange事件。正确的事件触发方法是OnPropertyChange,用于web浏览器控件在其导航到的页面上承载的元素发生变化时触发事件。这是一个工作的例子,我从不同的VB论坛,我问了同样的问题,并最终确定了答案粘贴:

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
   Dim doc As HtmlDocument = WebBrowser1.Document
   Dim aC As HtmlElement = doc.GetElementById("previewclock")
   Try
       If aC Is Nothing Then Return
       aC.AttachEventHandler("onpropertychange", AddressOf SomethingChanged)
   Catch
   End Try

,然后是处理'fired'事件的单独子例程:

Private Sub SomethingChanged(ByVal sender As Object, ByVal e As EventArgs)
        'MsgBox("Event was captured!")
        Console.WriteLine(Now.ToLongTimeString & ":" & "Changed")
End Sub