grid 获取的数据中,如果数据存在测试的字符,或者js语句,会导致页面布局错乱,如下方法,让获取到的数据全部当成文本进行显示
此操作主要防止以下亮点
1. 由于业务需要,查询的数据中存在特殊字符或者js语句,如:数据库字段中有一个字段的内容是: "alert(‘商品编码‘);",那么这个字段查出来到表格中之后,页面会弹出提示框
2.grid查询的字段来自于用户手动输入的文本,如果有恶意攻击,直接输入js语句,会执行相关语句。
表格字段formatter 的时候调用 HTMLEncode
{field:‘dlAddress‘,title:‘使用地点‘,width: 200,align:‘center‘,
formatter : function(value, row, index) {
return HTMLEncode(value);
}
}
/*-----------------------------------------------------------------------------------------*\
* 函数: 把特殊字符进行转换
* 参数: value -- 需要转化的字符串
* 返回值:
* 描述:
\*-----------------------------------------------------------------------------------------*/
function HTMLEncode(value) {
var returnValue;
if(value==null){
return null;
}
returnValue = value.replace(/&/g, ‘&‘);
returnValue = returnValue.replace(/</g, ‘<‘);
returnValue = returnValue.replace(/>/g, ‘>‘);
returnValue = returnValue.replace(/\n\n/g, ‘<br/>‘);
returnValue = returnValue.replace(/\r\r/g, ‘<br/>‘);
returnValue = returnValue.replace(/\n/g, ‘<br/>‘);
returnValue = returnValue.replace(/\r/g, ‘<br/>‘);
returnValue = returnValue.replace(/\t/g, ‘ ‘);
return returnValue;
}