如何知道gecko浏览器是否完成加载网页?

时间:2015-10-14 04:07:00

标签: c# .net gecko geckofx

正如标题所说,我怎么知道gecko浏览器是否完成了加载网页? 我知道有document_completed事件。但是每次加载网页时都会触发它。 有没有其他方法可以检查当前网页是否已完成加载。

2 个答案:

答案 0 :(得分:0)

Do While WebBrowser.IsBusy = True
Application.DoEvents()
Loop

适合我。在WebBrowser.Navigate成为IsBusy

之后,您需要等待一段时间(我使用1秒)True之后

答案 1 :(得分:0)

我在vb.net和GeckoFX v45.0.34.0中的独奏,您可以使用此工具将其转换为c#(http://converter.telerik.com/):

Private vWeb As GeckoWebBrowser = New GeckoWebBrowser
Private Property pageready As Boolean = False

Private Sub WaitForPageLoad()
    AddHandler vWeb.DocumentCompleted, New EventHandler(Of GeckoDocumentCompletedEventArgs)(AddressOf PageWaiter)

    While Not pageready
        Application.DoEvents()
    End While

    pageready = False
End Sub

Private Sub PageWaiter(ByVal sender As Object, ByVal e As GeckoDocumentCompletedEventArgs)
    If vWeb.IsBusy = False Then
        pageready = True
        RemoveHandler vWeb.DocumentCompleted, New EventHandler(Of GeckoDocumentCompletedEventArgs)(AddressOf PageWaiter)
    End If
End Sub

使用:

vWeb.Navigate("https://www.google.com")
WaitForPageLoad()
//Do your Work

希望此解决方案能够解决。