在我们的应用程序中,用户输入按原样保存并返回到负责对其进行编码的 UI。
这是从包含 javascript 的服务器返回的示例 JSON 数据
{"page":1,"total":1,"records":1,"rows":[{"id":"1","cell":["10jcmjn30jjiej8l499p","NO_ALERTS:Ei hälytyksiä","<script>console.log('jep');</script>","Pentti P.","3.4.2012 15:47","Kaupunki","Teiden auraus, KLO","Muu, Moite, Kiitos","Käsittelyssä, Odottaa vastausta","Ei määritetty","Luottamuksellinen","-","0","Kirjattu","x"]}]}
我花了很多时间让 jqGrid 在我们的应用程序中工作得非常好(感谢伟大的软件),并且 addJSONData 已经被使用,所以我不会在不需要这样做的情况下更改它。
问题 - 在格式化程序中
} else if($.fmatter){
总是被调用。在我的 javascript 知识中,$.fmatter 始终为 true,因此永远不会调用最后一个 else。实际上,该错误似乎在 jqGrid 的 Formatter 模块中,而不是在基本模块中。
$.fn.fmatter 不做任何编码。在我的情况下,它永远不会去
if ($.fn.fmatter[formatType]){
块,但它总是按原样返回给定的 cellval。也许那是进行编码的正确地方?
这就是我在我们的应用程序中所做的工作
$.fn.fmatter = function(formatType, cellval, opts, rwd, act) {
// build main options before element iteration
var v=cellval;
opts = $.extend({}, $.jgrid.formatter, opts);
if ($.fn.fmatter[formatType]){
v = $.fn.fmatter[formatType](cellval, opts, rwd, act);
} else {
v = $.jgrid.htmlEncode(cellval);
}
return v;
};