很多朋友在使用Kindeditor编辑器的时候都会遇到这样一个问题,如:给A标签加上title属性过后,浏览的时候,却神奇般地发现title属性没有了。再次切换html源代码的时候,返现编辑器将title属性给删掉了。追究其根本原因主要是kindeditor设置了标签和属性的默认过滤机制。KindEditor默认状态下会过滤编辑器里的html代码,主要是为了生成干净的代码,就会出现我们想不到的结果,现在焦国强为大家讲解:如何避免自己手动添加的代码被不必要的过滤。
首先我们知道3.4版本以上版本默认开启了过滤模式(filterMode:true)。当filterMode为true时,编辑器会根据htmlTags设定自动过滤HTML代码。
可是在我们平时的使用中,为了精简内容代码和达到好特定的显示效果,经常会用一些div跟css的代码,如果不更改编辑器的设定,这些代码都会被过滤,所
以如果想保留所有HTML相关代码,请将kindeditor.js里的filterMode设置成false。如果想保留特定HTML,请将
filterMode设置成true后,配置htmlTags属性。
filterMode : true // true:开启过滤模式, false:关闭过滤模式
如果改成filterMode : false之后,编辑器里面添加的代码就都会被保留。
可是如果我只是想不过滤某个标签,其他的还是正常过滤,应该怎么办呢?比如说我想保留行距代码<span style=”line-height:30px;”>,其他的还是正常过滤,方法是:
filterMode : 改成true 就是开启过滤的意思。
然后我们可以通过设置其htmlTags属性来得以实现。KindEditor 默认采用白名单过滤方式,可用 htmlTags 参数定义要保留的标签和属性 htmlTags指定要保留的HTML标记和属性。Object的key为HTML标签名,value为HTML属性数组,”.”开始的属性表示style属性。修改的文件为kindeditor.js 例子如下所示:在span下面添加line-height属性标签就可以了,当然要按照格式来添加,格式可以参照其他已经有的标签。
综上所述,通过以上两种方式即可实现kindeditor编辑器的标签和属性过滤效果。
不过修改完了一定要注意关掉编辑器的界面在重新打开,或是刷新,总之要清空缓存,否则是不起作用的。