1

我在一个更大的 WPF 应用程序中嵌入了一个 IE9 Web 浏览器控件。我正在尝试调用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 吗?

4

1 回答 1

1

您的属性和字符串周围的引号被转义,它们不应该被转义。那是

{\"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\"}]}

应该

{"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]],"标签":"A-TOP-6"}]}

于 2012-11-12T03:39:38.817 回答