2017-03-07 7 views
0

私のwinFormアプリケーションでcefSharpを使用しています。 winformからcefSharpによって表示されるhtmlページに長いjsonを渡したいと思います。 私は次のように記述してみました:cefsharp ExecuteScriptAsync(json)uri too too

Private WithEvents m_chromeBrowser As ChromiumWebBrowser 
... 
CefSharp.Cef.Initialize() 
page = New Uri("www...") 
m_chromeBrowser = New ChromiumWebBrowser(page.ToString) 
Panel.Controls.Add(m_chromeBrowser) 
... 
Dim json as String = "[{code:1,name:a,val:0},{...}....]" 
m_chromeBrowser.ExecuteScriptAsync("functionName('" & json & "');") 

しかし、私は、次のエラーを取得しておいてください。

Request-URI Too Long

あなたはブラウザにWinフォームから長いJSONを渡す方法任意のアイデアを持っていますか。

おかげ

答えて

0

さて、あなたはAsyncJSObjectを登録することにより、JavaScriptにネットクラスを露出させたほうが良いでしょう、JavaScriptからクラスメソッドを実行し、リターン結果を解析します。このような

何か:

public class CallbackObjectForJs { 
    public string getJson() { 
     return myJsonString; 
    } 
} 

...その後、クラス登録:結果を得るために

_webBrowser.RegisterAsyncJsObject(
    "Browser", 
    new CallbackObjectForJs(), 
    BindingOptions.DefaultBinder); 

を...そして最後にJavaScriptからメソッドを呼び出し、約束を使用します。

詳細はこちらからご覧ください。 https://github.com/cefsharp/CefSharp/wiki/General-Usage#3-how-do-you-expose-a-net-class-to-javascript

希望すると助かります!