avatar
@bangbang93

UEditor报Cannot read property 'innerHTML' of undefined

10/16/2014, 5:04:33 AM

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会递增