在使用百度编辑器ueditor插件的时候,你会发现有些自己想要的内容被被默认过滤掉,很多html样式都被更改了
由于百度出于安全问题,设置部分标签过滤功能,正面收集的一些内容,部分来源于网站,把相关的代码进行更改就可以了,这个编辑器不好的地方就是不能随意的配置过滤机制,代码9970行:
其中代码
'allowDivTransToP':true
该代码允许将用户输入的div标签转换成p标签,如果不想转换我们将其中的true改为false即可
当然,如果这仅仅是div不转换成p标签问题,如果你不想过滤其它的,最直接的方法就是在该方法前面直接返回
UE.plugins['defaultfilter'] = function () {
return true;
var me = this;
me.setOpt({
'allowDivTransToP':true,
'disabledTableInTable':true
});
......
直接一个return true就解决了所有过滤问题,因为过滤的机制是在该函数里面进行的
对于ueditor.all.min.js可搜索defaultfilter 进行过滤,同样的在函数里面进行reutrn true;处理即可
defaultfilter=function(){return treu;var a=this;a.setOpt({allowDivTransToP:!0,disabledTableInTable:!0})
上面是内容手动插入时,如果处理过滤问题,有时你会进行内容置入,调用内容方法UE.getEditor('editor').execCommand('insertHtml', value)可向编辑器插入内容,而插入内容前也会被过滤掉一些数据,而这个百度编辑器也是出于安全考虑,可修改ueditor.config.js里面的XSS过滤,359行开始
想全部清除就把true改成false,whitList参数全部注释掉或删除即可
欢迎大家把更好的办法分享出来,详细学习请查看官方文档或源码