关于百度富文本编辑器UEdit的初始化内容失败问题

百度富文本编辑器毫无疑问是强大的,但也会出问题。这个问题是在脚本中广泛存在的,由异步性致使的加载顺序问题。dom

咱们使用异步

var ue = UE.getEditor('editor', {});

建立实例。编辑器

并使用性能

ue.setContent("Helllo World!");

初始化内容。spa

可是有时候初始化失败。插件

缘由是初始化的时候富文本编辑器尚未加载完成。code

这个缘由对于经验丰富的攻城狮不难想到,由于js的异步问题不是只在这产生,不少时候都有这种异步致使的加载顺序问题。blog

对此头疼了一成天以后终于找到解决方法,UEdit有个本身的方法,能够在加载完成后执行。get

ue.ready(function() {
    ue.setContent(a);  //赋值给UEditor
});

和document.ready很像,却很难找,有时候就是这样,想找一个功能的时候,很难去具体寻找。因此经验很重要。富文本编辑器

固然咱们还可使用取巧的办法,好比使用setTimeout延时处理,以跳过加载期。只是window.onload是不行了。

缘由还要追寻到此类插件的实现方式上,此类插件的具体实现并非给定一个完整的dom结构而后进行动做,而是自行使用js建立整个dom结构,那么像富文本编辑器这样的就很是耗费性能。加载时间必然不短不说,window.onload是在dom加载完成执行,js的dom插入却不在此列。

相关文章
相关标签/搜索