2016-12-21 7 views

Antwort

1
Browser.ExecuteScriptAsync(); 

Sendet Javascript ausgeführt und im Gegenzug nichts erwartet werden, so zuweisen versuchen, 'nichts' (dh void) zu einer Htmlelement Variable ist ein no go.

Wenn Sie schauen, um die Seite ein wenig Javascript zu senden, und verwenden, was zurückgeschickt wird, müssen Sie EvaluateScriptAsync()

Dies wird wieder eine Task<JavascriptResponse> die noch nicht zur Anwendung empfohlen funktionieren, wenn Sie versuchen, es zu vergeben zu Size. Hier sind die schlechten Nachrichten: JavascriptResponse kann nur grundlegende Datentypen (int, Bool, String, etc.) sein. nicht ein Komplex (benutzerdefiniert) eingeben, die Sie selbst definiert haben -

Nur triviale Werte können (wie int, bool, string etc) zurückgegeben werden: Richtet sich nach deren Dokumentation. Dies ist , weil es keine (einfache) Möglichkeit gibt, ein zufälliges JavaScript-Objekt der .NET-Welt zu entlarven, zumindest nicht heute. Eine mögliche Technik ist jedoch , um das JavaScript-Objekt, das Sie zurückgeben wollen, in Ihren .NET-Code in eine JSON-Zeichenfolge mit der JavaScript-Methode JSON.toStringify() und umzuwandeln. Dann können Sie diese Zeichenfolge in ein .NET-Objekt mit etwas wie JSON.net decodieren. Weitere Informationen finden Sie in diesem MSDN-Link . (https://msdn.microsoft.com/en-us/library/ie/cc836459(v=vs.94).aspx)

Für weitere Informationen siehe: https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions

+0

Es gibt begrenzte Unterstützung für Arrays/Wörterbücher von primitiven Typen. Wenn Sie '[0,1]' zurückgeben, erhalten Sie eine Liste von Objekten, die in ganze Zahlen zerlegt werden können. – amaitland

Verwandte Themen