2011-07-18 2 views
1

私はこの問題を抱えています。私はVisual Basic WebブラウザコントロールでロードしているページのDOM要素を変更する必要があります。通常、FirefoxのJavaScriptでは、次のようなことをします:element [0] .childNodes [1] .addEventListener( "DOMAttrModified"、functionX、true);ここで要素[0]は私が監視する必要がある要素であり、子要素[1]はテキスト要素が変更されたときに捕捉する必要がある要素の2番目の子要素ですが、functionXは必要な関数/要素[0] .childNodes [1]に変更があるたびにトリガーします。VB 2010で同等のJS eventListener

私はこれをJavaScriptで簡単に行うことができますが、私はブラウザを実装するために使用するWebブラウザコントロールのVisual Basic 2010でこれを実装するのにひどい時があります。

私はDim Del As New EventHandler(AddressOf Me.CallGlobalJSMethod)のようなものがあることを知っていますが、これを実際に実装するのは困難です。どのようにこれが実際に行うことができるか考えている人はいますか?

更新:WebBrowser1.Navigate(address.Text)のようにVB2010のWebブラウザコントロールでページを開き、そのページを監視しています。 このウェブページには、idが "ctrlid"のテキストフィールドがあります。このコントロールのテキストプロパティは定期的に変更されます。私は変更があったときにそのイベントをキャッチしてそれに反応する必要があります。

+0

あなたがしようとしていることをもう少し明確にする必要があります。 –

+0

Paulo、私の更新を見てください。ありがとうございました。 – John

+0

私はこの質問を3週間前に聞いた。私はその間に答えを見つけ出し、他の誰かが助けを必要とする場合に備えて、ここでそれを文書化しています。 – John

答えて

2

私はこの疑問を3週間前に聞いた。私はその間に答えを見つけ出し、他の誰かが助けを必要とする場合に備えて、ここでそれを文書化しています。問題はOnChangeイベントで発生しました。正しいイベントトリガメソッドはOnPropertyChangeです。ウェブブラウザコントロールは、そのページにナビゲートされてホストされている要素の変更に関するイベントを発生させます。これは私が私が同じ質問をし、答えを確定異なる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 

と「解雇」イベントが処理される別のサブ・ルーチン:

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