首先

<script>

var editor=UE.getEditor('')

var editor1=UE.getEditor('')

</script>

然后

editor.ready(function(){//监听编辑器实例化完成的事件

console.log('编辑器1实例化完成')

editor.setContent('嘿嘿')

})

editor.ready(function(){

console.log('编辑器2实例化完成')

editor1.setContent('哈哈')

})

但是当我点击浏览器的后退键返回上一个页面(或者是点击页面上自己设置的后退按钮返回上一个页面)后,再一次进入到编辑器页面,同样调用

editor.setContent('嘿嘿')

editor1.setContent('哈哈')

的方法,浏览器控制台就报错了 Cannot set property 'innerHTML' of null .意思就是需要赋值的对象是null(但为什么没有报undefined呢?答案接下来分析)

而且奇葩的是,editor编辑器内容赋值成功,但是editor1赋值失败.

思前想后,还是去看看ueditor的源码吧.

UE.getEditor = function (id, opt) {
var editor = instances[id];
if (!editor) {
editor = instances[id] = new UE.ui.Editor(opt);
editor.render(id);
}
return editor;
};
源码里的instances是一个初始化的空对象

代码的意思就是:先去页面找是否存在已经实例化的编辑器对象,如果没有,就新生成一个编辑器.否则直接将页面上找到的那个编辑器给返回.再联想到刚才的报错Cannot set property 'innerHTML' of null(而不是undefined,而且控制台也没有输出编辑器2实例化完成),那么真相只有一个! 那就是当你在一次来到编辑器页面时,编辑器早已经存在,都已经存在的编辑器,自然不会触发ready事件,所以自然不能触发卸载ready事件里的setContent事件了.

好奇的小伙伴一定会想到,既然编辑器已经存在了,那么我们把setContent函数调到ready事件外,不就行了吗!!!!  然而,并没有任何luan用.....(设置setTimeout也不行)

不过我想说的是,我们就来点简单粗暴的方法吧,ok,再回到ueditor源码

UE.getEditor = function (id, opt) {
var editor = instances[id];
if (!editor) {
editor = instances[id] = new UE.ui.Editor(opt);
editor.render(id);
}
return editor;
};

我们可以跳过上面代码的判断,每一次直接根据js传来的id,生成一个全新的ueditor对象.所以上述代码可以改成:

UE.getEditor = function (id, opt) {

UE.delEditor(id);
var editor = new UE.ui.Editor(opt);
editor.render(id);
return editor;
};

最后附上销毁ueditor的一个方法:(UE.delEditor('editor'))

UE.delEditor = function (id) {
var editor;
if (editor = instances[id]) {
editor.key && editor.destroy();
delete instances[id]
}
};

仔细分析一下源码,进行调试就会发现问题,解决bug

百度 UE ueditor 实例化 Cannot set property 'innerHTML' of null 解决方案相关推荐

  1. (转)Uncaught TypeError: Cannot set property 'innerHTML' of null

    (转)http://www.cnblogs.com/Ricky-Huang/p/5536253.html 在使用Ueditor的时候,会爆出这样的错误: 浏览器控制台就报错了 Cannot set p ...

  2. Cannot set property ‘innerHTML‘ of null 问题的解决

    Cannot set property 'innerHTML' of null 问题的解决 参考文章: (1)Cannot set property 'innerHTML' of null 问题的解决 ...

  3. 对于Uncaught TypeError: Cannot set property ‘innerHTML‘ of null 的理解

    在w3school自学JavaScript时,发现一个很有意思的问题.首先看下面代码: <!DOCTYPE html> <html> <body><h2> ...

  4. Cannot set property innerHTML of null

    最近写代码出现一个这样的一个: Uncaught TypeError: Cannot set property 'innerHTML' of null. 大致意思就是无法为innerHTML设置为nu ...

  5. Cannot set property 'innerHTML' of null解决办法

    今天写程序的时候出现了Cannot set property 'innerHTML' of null,网上查找了一些资料,原来js是自上而下调用的. 解决办法: 将js放在web页面你要编辑的元素的后 ...

  6. VUE 百度UE自定义上传图片按钮

    <vue-ueditor-wrap :config="config" ref="ued" @ready="ready" @before ...

  7. uEditor setContent方法报错Uncaught TypeError: Cannot read property ‘innerHTML‘ of undefined

    uEditor setContent方法报错Uncaught TypeError: Cannot read property 'innerHTML' of undefined 报错信息 解决方法 报错 ...

  8. UEditor使用报错Cannot set property 'innerHTML' of undefined

    仿用UEditor的setContent的时候报错,报错代码如下Uncaught TypeError: Cannot set property 'innerHTML' of undefined.调试u ...

  9. 解决:百度编辑器UEditor,怎么将图片保存到图片服务器,或者上传到ftp服务器的问题(如果你正在用UE,这篇文章值得你看下)

    解决:百度编辑器UEditor,怎么将图片保存到图片服务器,或者上传到ftp服务器的问题(如果你正在用UE,这篇文章值得你看下) 参考文章: (1)解决:百度编辑器UEditor,怎么将图片保存到图片 ...

最新文章

  1. React.js 小书 Lesson27 - 实战分析:评论功能(六)
  2. vs合并项目_线性混合效应模型 VS 方差分析
  3. 秦汉考场科目三路线图_我在青竹湖考场考科三的一些分享
  4. Cobertura和Maven:集成和单元测试的代码覆盖率
  5. PHP中对hmac_sha1签名算法的实现方法
  6. 硅谷半夜3点惊现无人驾驶特斯拉!百公里时速飞驰,交警围追10公里才逼停
  7. Hibernate多表关联查询记录映射
  8. windows 资源监视器
  9. 柳传志的回复:联想集团大裁员:公司不是家
  10. 我心目中的编程高手(不得不转)
  11. 而立之年,时间都去哪儿
  12. 部分手机打开USB调试,安装失败解决办法
  13. chatter命令详解(用来记录知识)
  14. 四、文件管理(三)文件系统
  15. 十、什么是临界资源及如何访问临界资源
  16. Dubbo系统里面MultipartFile文件传输问题Dubbo文件上传/传输服务
  17. National.Geographic.100.Years.国家地理百年纪念典藏
  18. centos7.9安装了微信,但腾讯公司不允许在Linux里登录微信帐号,白搞了半天。也有可能是那个微信安装包的问题吧
  19. vosk开源语音识别
  20. ArcGIS二次开发知识点总结

热门文章

  1. Oracle 18c新特性:多租户舰队 CDB Fleet
  2. 20-21(2)第0次线上赛(智商康复训练)
  3. 文件的解压和压缩(主要以 .tgz、.z 等文件为主)
  4. 深入了解font-weight
  5. html兼容IE中的!--[if IE]--!--[endif]--说明
  6. 第十六周总结——清静
  7. 我国现行消费税存在的问题与完善建议
  8. 程序加速原理分析~~
  9. 保姆级别 附带源码 Django集成channels(一)实现简单聊天功能
  10. oracle正确卸载步骤,转自yuxuan_08