私たちのアプリケーションでは、ユーザーの入力はそのまま保存され、UIに返され、その責任はエンコードされます。
は、ここで私は我々のアプリケーションでは、実際に非常によく(ソフトウェアの素晴らしい作品に感謝を)jqGrid仕事をするために多くの時間を使用しているとaddJSONDataがされているJavaScriptのに
{"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"]}]}
が含まれているJSONデータをサーバから返された例です私はそれを行う必要なしにそれを変更しないように使用されます。問題の
- フォーマッタ
} else if($.fmatter){
では常に呼ばれています。私のjavascriptの知識では$ .fmatterは常に真ですので、最後の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;
};