2015-07-01 123 views
12

我想在Windows窗體中使用CefSharp執行JavaScript代碼,但它不起作用。代碼如下,並且消息test未顯示。我錯過了什麼?cefsharp執行javascript

CefSharp.WinForms.ChromiumWebBrowser browser = new ChromiumWebBrowser("http://localhost:50056/simple.aspx"); 
browser.Name = "Simple Page"; 
browser.Dock = DockStyle.Fill;    
this.Controls.Add(browser); 
browser.ExecuteScriptAsync("alert('test');"); 
+0

我用Nuget安裝cefsharp,版本是41.0.0。 –

+0

嘗試用'EvaluateScriptAsync'代替'ExecuteScriptAsync' – R3tep

+0

謝謝R3tep。我試過了,但結果是一樣的。 –

回答

16

您需要等待瀏覽器在執行大部分操作之前進行初始化,包括執行javascript。您可以勾選IsBrowserInitializedChanged事件並執行類似操作。

private void OnIsBrowserInitializedChanged(object sender, IsBrowserInitializedChangedEventArgs args) 
{ 
    if(args.IsBrowserInitialized) 
    { 
     browser.ExecuteScriptAsync("alert('test');"); 
    } 
} 
+2

「CefSharp」的下一個主要版本將用您的原始代碼拋出一個異常,試圖自我記錄,而不是默默無聞。 – amaitland

+0

非常感謝。有用。 –

+0

更多細節見https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#CallJS – amaitland