2010-12-09 8 views
0

Ich verwende WebKit-Browser-Steuerelement in meiner WPF-Anwendung. Ich benutze es, weil ich ProtoVis HTML aktiviert haben möchte. Bis zu diesem Punkt bin ich erfolgreich. Jetzt möchte ich einige Parameter speziell Arrays von double, int und strings an eine der Java-Script-Methode der gerenderten Seite innerhalb des Steuerelements übergeben. Ich habe die InvokeScriptMethod() API von WebKit ausprobiert, aber es funktionierte nicht für mich, wenn ich Parameter übergeben wollte. Alles funktioniert gut, wenn ich die Skriptmethode aufrufen, die keinen Parameter benötigt.Problem bei der Verwendung des WebKit-Browsers InvokeScriptMethod()

Kann mir jemand helfen? Ich bin verzweifelt für sie. :)

Danke, Omkar

+0

Wie funktioniert es nicht? Gibt es eine Fehlermeldung? Können Sie das Codefragment posten, das Sie zum Aufrufen der API verwenden? – Lazarus

+0

Um nur ein paar Dinge hinzuzufügen, habe ich HRESULT als E_FAIL in meiner .net-Anwendung, als ich versuchte, diese Methode aufzurufen. Folgendes ist der Code – Omkar

+0

Wie von Lazarus angefordert, den folgenden my Code hinzufügen. # Java Scriptcode Funktion DisplayData (Obj) { document.write (obj + ":"); } # C# code browser.Document.InvokeScriptMethod ("window.DisplayData", neues Objekt [] {"omky", "sourabh"}); Ich bekomme immer "null" in Java-Skript. Bitte korrigieren Sie mich, wenn ich falsch liege. – Omkar

Antwort

1

ich HRESULT als E_FAIL, wenn ich nicht warten, bis die Seite vollständig geladen ist.

Sie haben bis zu diesem Ereignis warten:

private void webKitBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    object[] arr = {"some parameter"}; 
    String returned = webKitBrowser1.Document.InvokeScriptMethod("JavascriptFunctionName", arr) as String; 
} 

abgefeuert wird. Danach hat alles gut für mich funktioniert.

0

Sie können verwenden, webKitBrowser1.StringByEvaluatingJavaScriptFromString ("javascript: YourMethod();");

Verwandte Themen