2015-07-01 31 views
12

Voglio eseguire il codice JavaScript utilizzando CefSharp in Windows Form, ma non funziona. Il codice è il seguente e il messaggio test non viene visualizzato. Ho dimenticato qualcosa?cefsharp execute 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

Uso Nuget per installare cefsharp e la versione è 41.0.0. –

+0

Provare a sostituire 'ExecuteScriptAsync' con' EvaluateScriptAsync' – R3tep

+0

Grazie, R3tep. Ci ho provato, ma il risultato è lo stesso. –

risposta

16

È necessario attendere l'inizializzazione del browser prima di eseguire la maggior parte delle operazioni, incluso l'esecuzione di javascript. È possibile collegare l'evento IsBrowserInitializedChanged e fare qualcosa di simile.

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

La prossima versione principale di 'CefSharp' genererà un'eccezione con il codice originale nel tentativo di auto-documentare anziché semplicemente fare silenziosamente nulla. – amaitland

+0

Grazie mille. Funziona. –

+0

Maggiori dettagli in https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#CallJS – amaitland