解决百度富文本编辑器-Ueditor div、dl、dt、dd过滤替换问题

使用ueditor编辑器中,想保存style标签的样式需要对js配置文件进行修改。官方为了安全考虑,默认会将style标签转为DIV标签,导致样式不能显示出对应的效果。

本修改基于1.4.3版本修改如下

1.找到ueditor.config.js文件

// 将下面3个参数值改为false

// xss 过滤是否开启,inserthtml等操作

,xssFilterRules: false

//input xss过滤

,inputXssFilter: false

//output xss过滤

,outputXssFilter: false

2.确定页面引入的是 ueditor.all.min.js 还是 ueditor.all.js ,并修改:

1、 找到allowDivTransToP参数,这个参数会将DIV标签转为P标签,设置为false

me.setOpt(

  {

    'allowDivTransToP':false,

    'disabledTableInTable':true

  }

);

2 找到addInputRule方法,并将switch case 中的case style:删除或注释

switch (node.tagName) {

// case 'style':

// case 'script':

// node.setAttr({

// cdata_tag: node.tagName,

// cdata_data: (node.innerHTML() || ''),

// '_ue_custom_node_':'true'

// });

// node.tagName = 'div';

// node.innerHTML('');

// break;

case 'a':

if (val = node.getAttr('href')) {

node.setAttr('_href', val)

}

break;

3、搜索 node.tagName = ‘ul’; 把如下几行注释

if (p.firstChild()) {

node.parentNode.insertBefore(p, node);

}

node.parentNode.removeChild(node);

break;

// case 'dl':

// node.tagName = 'ul';

// break;

// case 'dt':

// case 'dd':

// node.tagName = 'li';

// break;

case 'li':

var className = node.getAttr('class');

if (!className || !/list\-/.test(className)) {

node.setAttr()

}

var tmpNodes = node.getNodesByTagName('ol ul');

UE.utils.each(tmpNodes, function (n) {

node.parentNode.insertAfter(n, node);

});

4.清除浏览器缓存,刷新网站

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值