联系官方销售客服

1835022288

028-61286886

分享经验 版主:论坛审计组
默认百度编辑器ueditor转义问题解决我在从织梦转入数据时,发现无论文章还是栏目,都有大量 “”·
类型:迅睿CMS 更新时间:2021-11-25 22:40:40 百度编辑器 return

默认百度编辑器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: &lt;body&gt;&amp;&lt;/body&gt;
         * 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 {
                        '<':'&lt;',
                        '&':'&amp;', //修改这里 
                        '"':'&quot;',
                        '>':'&gt;',
                        "'":'&#39;'
                    }[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..