UEditor内会有一个iframe,所以如果刚刚使用
var ue = UE.getEditor('editor');
就进行
ue.setContent($('#content').val(), false);
的话
UEditor源码里setContent是这么写的
me=this;
me.body.innerHTML = (isAppendTo ? me.body.innerHTML : '') + html;
由于iframe还没有载入完成,所以me.body==undefined,于是就会出现如标题的错误。
解决方法是
ue.addListener('ready', function (){
ue.setContent($('#content').val(), false);
});
让jQuery监听iframe的load事件,load后再进行setContent。如果网页内有其他iframe,就需要修改第二个选择器。UEditor生成的iframe有id="ueditor_0"这个属性,看上去0会递增