2

今天调整项目需求,里面涉及到需要初始化多个百度编辑器。但是遇到这样一个问题,百度编辑器在第一次进入时,编辑器容器未初始化,再次刷新容器初始化成功。
通过UE.instances查看已初始化的实例却发现,该编辑器实例已存在,也就是说只是没有执行render函数

但是细看代码才发现有个坑,项目是单页化的,不涉及页面刷新,所以当我第二次进入页面时,其实编辑器实例已经保存在instances中了!!!

查看UE源码发现如下代码:
图片描述
这段可以看到,在调用UE.getEditor(‘_editor’)初始化UEditor时,先从放置编辑器的容器instances中获取,没有实例才实例化一个Editor,这就是引起问题的原因。

所以要解决上述问题,比较简单的办法就是每次进入时先将原来的实例删除,代码如下:

    UE.delEditor('_editor');
    var ue = UE.getEditor('_editor');

当然也可以如下办法处理:

    UE.getEditor('_editor').render('_editor');

希望以上内容对大家有所帮助。


Clearlove
1.2k 声望53 粉丝

专注做好一件事


引用和评论

0 条评论