我在更大的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 \ “:[{\” 数据\ “:[[1,1111.11111111111],[2,1111.11111111111],[3,1111.11111111111],\” 标签\ “:\” A-TOP -6 \ “}],\” plot1 \ “:[{\” 数据\ “:[[1,1111.11111111111],[2,1111.11111111111],[3,1111.11111111111],\” 标签\ “:\” A -TOP-6 \ “}],\” plot2 \ “:[{\” 数据\ “:[[1,1111.11111111111],[2,1111.11111111111],[3,1111.11111111111],\” 标签\“:\ “A-TOP-6 \”}],\ “plot3 \”:[{\ “数据\”:[[1,1111.11111111111],[2,1111.11111111111],[3,1111.11111111111],\ “标签\” :\ “A-TOP-6 \”}],\ “plot4 \”:[{\ “数据\”:[[1,1111.11111111111],[2,1111.11111111111],[3,1111.11111111111],\“标签\ “:\” A-TOP-6 \ “}]}”
当我在IE9开发人员工具中直接传递该字符串时,我没有错误。
我没有正确调用InvokeScript吗?
答案 0 :(得分:1)
属性和字符串周围的引号是转义的,它们不应该是。那是
{\" plot0 \":[{\"数据\":[[1,1111.11111111111],[2,1111.11111111111],[3,1111.11111111111]] \"标签\":\" A-TOP-6 \"}],\" plot1 \":[{\"数据\":[[1,1111.11111111111],[2,1111.11111111111],[3,1111.11111111111]] \"标签\":\" A-TOP-6 \& #34;}],\" plot2 \":[{\"数据\":[[1,1111.11111111111],[2,1111.11111111111],[3,1111.11111111111] ],\"标签\":\" A-TOP-6 \"}],\" plot3 \":[{\&#34 ;数据\":[[1,1111.11111111111],[2,1111.11111111111],[3,1111.11111111111]] \"标签\":\" A-TOP-6 \"}],\" plot4 \":[{\"数据\":[[1,1111.11111111111],[2,1111.11111111111],[3, 1111.11111111111],\"标签\":\" A-TOP-6 \"}]}
应该是
{" plot0":[{"数据":[[1,1111.11111111111],[2,1111.11111111111],[3,1111.11111111111]]"标签&# 34;:" A-TOP-6"}]," plot1":[{"数据":[[1,1111.11111111111],[2,1111.11111111111] [3,1111.11111111111]]"标签":" A-TOP-6"}]," plot2":[{"数据&#34 ;:[[1,1111.11111111111],[2,1111.11111111111],[3,1111.11111111111]]"标签":" A-TOP-6"}]," plot3":[{"数据":[[1,1111.11111111111],[2,1111.11111111111],[3,1111.11111111111]]"标签":" A -TOP-6"}]," plot4":[{"数据":[[1,1111.11111111111],[2,1111.11111111111],[3,1111.11111111111]] "标签":" A-TOP-6"}]}