在Html前端页面使用bootstrap展示数据,对单元格进行函数调用传递参数时,如果参数串包涵特殊字符,往往会导致调用失败。这时可以考虑用base64编码进行转义。
关键部分代码如下:
<script th:inline="javascript">
$(function() {
var options = {
url: xxx,
modalName: xxx,
columns: [
{
title: "序号",
formatter: function (value, row, index) {
return $.table.serialNumber(index);
}
},
{
field: 'serviceName',
title: '服务名'
},
{
field: 'isEnable',
title: '启用',
formatter: function (value, row, index) {
if ( value == '1' )
return '启用';
else
return '待启用';
}
},
{
field: 'dataValue',
title: '复杂文本'
},
{
title: '调用示例',
align: 'center',
formatter: function (value, row, index) {
var actions = [];
if ((row.isEnable == 1) )
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="doShowData(\'' + encode(row.dataValue) + '\')"><i class="fa fa-edit"></i>查看</a> ');
return actions.join('');
}
}]
};
$.table.init(options);
});
//字符串转base64
function encode(str){
var encode = encodeURI(str);
var base64 = btoa(encode);
return base64;
}
// base64转字符串
function decode(base64){
var decode = atob(base64);
var str = decodeURI(decode);
return str;
}
function doShowData(jsonData) {
alert(decode(jsonData));
}
</script>
注:部分代码采用若依RuoYi框架