使用Jeditable插件时遇到的问题
Jeditable在渲染页面已有DIV=>form的时候
首先使用
$("div").html();
去获取原DIV中的内容.
这样导致一个问题, 如果原div中带有html关键字, 在获取时候会被转码.
比如&会被转成& 继而写入form中的textarea.
在提取html至form的时候做处理, 可以解决这个问题
$.trim(br2nl(htmlspecialchars_decode(string)))
br2nl转换原先数据库存储的<br>标签=>\n
1 function br2nl(text) { 2 return text.replace(/<br\s*\/?>/mig,"\n"); 3 }
htmlspecialchars_decode 将html反转码
1 function htmlspecialchars_decode(htmlstring, quote_style) { 2 var str = htmlstring.replace(/&/g, '&'); 3 str = str.replace(/</g, '<'); 4 str = str.replace(/>/g, '>'); 5 6 // decode depending on quote_style 7 if (quote_style == 'ENT_QUOTES') 8 { 9 str = str.replace(/"/g, '"'); 10 str = str.replace(/'/g, '\''); 11 } 12 else if (quote_style != 'ENT_NOQUOTES') 13 { 14 // All other cases (ENT_COMPAT, default, but not ENT_NOQUOTES) 15 str = str.replace(/"/g, '"'); 16 } 17 18 return str; 19 }