关于使用百度ueditor时的一些问题

本来这些问题直接在百度贴吧里回答不就完事了,可是好死不死的,百度贴吧里老出现

未知错误,错误号:230274

看来还是算了,自己做一个随笔记录一下好了

关于我们获取里面的内容时,老是会有一个<p>来包着,而且还老是多出来一个<br/>

这边是这么处理的

在_src/core/Editor.js约L843左右

//给文本或者inline节点套p标签
if (me.options.enterTag == 'p') {

而这个me.options是来自于我们的配置文件,从而得知,我们配置文件里是有这个enterTag的属性的

所以初始化时加入

var ue = UE.getEditor('editor1',{
toolbars:[['bold','italic','forecolor','backcolor']],//工具栏
autosave:false,//自动保存
elementPathEnabled:false,//输入框下面的路径信息
maxInputCount:1,//多少字符长度的变化时触动自动保存
wordCount:true,//是否开启字数统计
maximumWords:20000,//最大输入字符
autoClearinitialContent:true,
focus:true,
autoFloatEnabled:false,//是否保持工具栏不动
enterTag:false,
});

我们获取的内容就没有p标签了

 

上面的配置里有一个autosave这个属性,也是这样发现的,就是去除自动保存功能

 

对于多出来的<br/>

这边的处理方式是直接匹配掉最后面的

content_old = content_old.replace(new RegExp('((\<br\/\>)+)$'),'');

 

而为了不出现类似XXXX<em><br/><br/><br/></em>

的现象,在htmlparse.js添加如下信息

htmlstr = htmlstr.replace(new RegExp('(\<br\/\>)+\<\/'),'</');
htmlstr = htmlstr.replace(new RegExp(domUtils.fillChar, 'g'), '');

但是这样添加以后,当次编辑不会生效,要再次点击以后才会生效,这也怕有人想在<br/>后添加内容,

其实最好的还是在获取了content以后再进行一次这个空元素的处理,但这里暂时不管

posted @ 2016-12-27 15:58  taui  阅读(444)  评论(0编辑  收藏  举报