联系官方销售客服
1835022288
028-61286886
默认百度编辑器ueditor转义问题&ldquo等引号问题解决。
我在从织梦转入数据时,发现无论文章还是栏目,都有大量
“ ” · —
基本上各种引号都被这样转义了。关闭xss据说可以,实测不行。换编辑器不考虑。
官方技术说最新版转换插件可以,甚至发了他们测试可行的动图。但是根据我自己测试,无论是windows还是linux,本地、服务器,纯净版、全新安装版,官方正式版、gitee最新版全都不行。解决不了问题。
经过坚持不懈的努力,终于发现一个可行办法。
修改/api/ueditor/ueditor.all.js,非调试模式应该是修改/api/ueditor/ueditor.all.min.js
/** * 将str中的html符号转义,将转义“',&,<,",>”五个字符 * @method unhtml * @param { String } str 需要转义的字符串 * @return { String } 转义后的字符串 * @example * ```javascript * var html = '<body>&</body>'; * * //output: <body>&</body> * console.log( UE.utils.unhtml( html ) ); * * ``` */ unhtml:function (str, reg) { return str ? str.replace(reg || /[&<">'](?:(amp|lt|quot|gt|#39|nbsp|#\d+);)?/g, function (a, b) { if (b) { return a; } else { return { '<':'<', '&':'&', //修改这里 '"':'"', '>':'>', "'":''' }[a] } }) : ''; },
2种方法:
1-最暴力的,直接修改759行,如下
'&':'&', //修改这里
2-将不想转义的插入到 nbsp|后面,比较繁琐
return str ? str.replace(reg || /[&<">'](?:(amp|lt|quot|gt|#39|nbsp|#\d+);)?/g, function (a, b) {
修改为
return str ? str.replace(reg || /[&<">'](?:(amp|lt|quot|gt|#39|nbsp|ldquo|rdquo|middot|#\d+);)?/g, function (a, b) {
以上2种都可以解决问题,正常显示。不知道这样改有没有bug..