2016-10-03 49 views
0

我是新的Awesomium webcontrol。當我爲我的webbrowser控件添加事件DocumentCompleted,就像我想爲我的Awesomium webcontrol添加的那樣,我該怎麼做?在Awesomium webcontrol中添加DocumentCompletedEvent

AddHandler WebBrowser1.DocumentCompleted, New _ 
    WebBrowserDocumentCompletedEventHandler(AddressOf webBrowser1_DocumentCompleted) 

回答

0

不幸的是,這個事件並不像.net的網頁控制一樣簡單...但它的效果仍然可以實現。以下是我通常這樣做的原因,對於這樣一個基本事件來說看起來有點過分,但我會解釋爲什麼這是必要的。下面的代碼:

Private Sub WebControl1_LoadingFrameComplete(sender As Object, e As Awesomium.Core.FrameEventArgs) Handles WebControl1.LoadingFrameComplete 
    If e.IsMainFrame AndAlso Not WebControl1.IsNavigating AndAlso Not WebControl1.IsLoading Then 
     'do stuff 
    End If 
End Sub 

OnLoadingFrameComplete是最接近Awesomium有DocumentCompleted,但本身並不表示所有頁面的資源裝載完畢。當單個幀/子幀加載完成時,它可以多次觸發,這就是爲什麼我們檢查e.IsMainFrame,因爲它是通常是加載的最後一幀......這就是Awesomium的開發人員建議檢測頁面的方式如何完成加載。但是,我在過去幾次都失敗了,所以我添加了Not IsLoading而不是IsNavigating,如果在後臺仍然有任何加載進行,將阻止子邏輯被執行。隨着這些檢查添加到事件中,它迄今爲止對我來說正確而持續地執行。