關於百度富文本編輯器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插入卻不在此列。

相關文章
相關標籤/搜索