百度的ueditor挺强大的,不过bug也多,在源码模式下提交表单时,内容是不会更新的,只有切换回视图模式才能更新,这怎么行啊?每次都要这样多麻烦?万一忘记切,那前面写的内容不是都白费了?必须要解决这个问题!于是我测试了一下,用contentchange监听内容:
var ue = UE.getEditor('container'); ue.addListener('contentChange',function(){ console.log('内容改变了'); //这里监听内容改变,只有视图模式时才起作用,源码模式无效 }
很明显,是这里出了问题啊。ueditor的源代码模式用了CodeMirror插件,于是我从ueditor.all.js下手。
以下是解决办法:
sourceEditor = createSourceEditor(me.iframe.parentNode); //查找这串代码,在下面加上以下代码 sourceEditor.getCodeMirror().setOption('onChange',function(){ me.fireEvent('contentchange', 'contentchange'); });
再试试用contentChange监听,搞定!
如果你用的是ueditor.min.js压缩版的
{a=UE.htmlparser(a);b.filterInputRule(a);a=a.toHtml();e.setContent(a)};//查找这串代码,在后面加上以下代码 e.getCodeMirror().setOption('onChange',function(){b.fireEvent('contentchange', 'contentchange');});