0

状況:
VB.NET Framework 3.5 と Visual Studio 2005 を使用して、作業中の WebBrowser オブジェクトを使用するプロジェクトを作成しました。非常に基本的な部分に分解すると、次のようになります。

Dim bWbCompletedDocument As Boolean = False 

Sub WbCompletedDocument(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
    bWbCompletedDocument = True
End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs)Handles Me.Load
    Dim th As New System.Threading.Thread(AddressOf worker)
    th.SetApartmentState(Threading.ApartmentState.STA)
    th.Start()
End Sub

Sub worker()
    Dim Wb As New WebBrowser
    Wb.ScriptErrorsSuppressed = True
    AddHandler Wb.DocumentCompleted, AddressOf WbCompletedDocument

    Wb.Navigate("google.de")

    Dim start As Date = Now

    Do While start.AddSeconds(20) > Now
        Application.DoEvents()
        If (bWbCompletedDocument = True) And (Wb.IsBusy = False) And (Wb.ReadyState = WebBrowserReadyState.Complete) Then
            Exit Do
        End If
    Loop

    If bWbCompletedDocument = False Then
        Exit Sub
    End If

    'more code here

End Sub

ブラウザの GUI はありませんが、すべて正常に動作します。DocumentCompletedイベントをキャッチするページに移動し、 ReadyStateを確認し、彼がIsBuisyであるかどうかを確認して、コードを続行します。

問題 onLoad
イベントが発生 すると、JavaScript コードの実行を開始するサイトがあります。Wb オブジェクトがページをロードした後で .Net コードを続行すると、Wb は JavaScript の実行を停止します。

質問
WebBrowser-Object で現在 JavaScript が実行されているかどうかを判断したり、終了するのを待つ方法はありますか?

4

1 に答える 1