より大きなWPFアプリケーションにIE9Webブラウザーコントロールを組み込んでいます。InvokeScript
JSON文字列を呼び出してパラメータとして渡そうとしています:
webBrowser.InvokeScript("redrawPlot", new object[] { reDrawData });
関数redrawPlotは、jqueryメソッドparseJSON
を使用して、これを解析してオブジェクトに戻します。
redrawPlot = function(dataObj) {
dataObj = $.parseJSON(dataObj);
...
}
これをWPFアプリで実行すると、JavaScriptエラーが発生します。
Invalid character
reDrawDataの内容(スクリプトデバッガーとWPFアプリで検査されます)は次のとおりです。
"{\" plot0 \ ":[{\" data \ ":[[1,1111.11111111111]、[2,1111.11111111111]、[3,1111.11111111111]]、\" label \ ":\" A-TOP-6 \ "}]、\" plot1 \ ":[{\" data \ ":[[1,1111.11111111111]、[2,1111.11111111111]、[3,1111.11111111111]]、\" label \ ":\" A-TOP- 6 \ "}]、\" plot2 \ ":[{\" data \ ":[[1,1111.11111111111]、[2,1111.11111111111]、[3,1111.11111111111]]、\" label \ ":\" A- TOP-6 \ "}]、\" plot3 \ ":[{\" data \ ":[[1,1111.11111111111]、[2,1111.11111111111]、[3,1111.11111111111]]、\" label \ ":\" A-TOP-6 \ "}]、\" plot4 \ ":[{\" data \ ":[[1,1111.11111111111]、[2,1111.11111111111]、[3,1111.11111111111]]、\" label \ ": \"A-TOP-6\"}]}」
IE9開発者ツールでこれを実行してその文字列を直接渡すと、エラーは発生しません。
InvokeScriptを正しく呼び出していませんか?