当datagrid加载的数据存在特殊字符时,会导致渲染出错,比如:data:[{name:"<script>alert('a')</script>"}],对于这样的数据直接会导致代码执行。
1、使用autoEscape属性的话字符会被转义,显示出来的是& l t ;这样的字符,这并不是我想要的效果,我希望显示的是原本的字符串。
2、我尝试过使用drawcell方式,但也存在问题,比如a.html引入了a.js、c.js;b.html引入了b.js、c.js,我在c.js写grid.on("drawcell",function(){e.cellHtml=将尖括号等字符转义}),但是我的a.js中也存在ondrawcell事件,而且可能存在e.cellHtml="<img src='xxx'/>ddd"这样的代码。通过实验我发现两个drawcell事件会相互影响,而且将导致a.js中想要drawcell的img标签也被转义。