今天工作需要,用到了Ueditor,在使用的過程中遇到了一些問題,特此在這總結一下,以備以后他人和自己查閱。
首先簡單介紹一下,ueditor是百度推出的一款在BSD協議下的完全免費開源的所見即所得的富文本web編輯器,目前的最新版本是1.2.5.1,支持全功能下載(即開發版)以及定制功能下載(即UBuilder版),大家可以到其官方主頁看看。
簡單的應用配置大家可以下載開發版,里面有非常詳細的例子,大約看看就OK,也有詳細的API,下面將我遇到的問題與處理方案描述一下:
1、在Asp.net中加載相關腳本文件,並且位置都正確,但是依然顯示不出
提示腳本錯誤 Error: The load /MyWebSite/lang/zh-cn/zh-cn.js fails,check the url settings of file editor_config.js
剛開始以為是我的腳本加載的有問題,檢查了一下確實正確,又仔細看了看錯誤提示,讓檢查一下editor_config.js中的url
一看才知道原來,在這個config中有一url字段,其直接賦值給UEDITOR_HOME_URL字段,在editor內部的處理中使用了這個UEDITOR_HOME_URL來加載一些內容,這個如果配置不好就會找不到相關的資源,只要我們在配置editor時同時將其賦值就可以,代碼如下:
var ue; function pageLoadedFunc() { ue = UE.getEditor('editor', { UEDITOR_HOME_URL: "http://www.cnblogs.com/ueditor/" }); }
這樣就可以了。
2、在Asp.net中,通過setContent方法賦值出錯。
提示錯誤:Error: Unable to set property 'innerHTML' of undefined or null reference
定位進去是this.body is undefined。
這個地方實際上是初始時還沒對body進行賦值,有兩種方式可以解決:
一種是初始的時候使用initialContent進行初始內容賦值,初始完成后,再使用setContent就OK了,如下(順便介紹另一種初始方案):
var ue; function pageLoadedFunc() { ue = new UE.ui.Editor({ UEDITOR_HOME_URL: "http://www.cnblogs.com/ueditor/", initialContent:"初始內容" }); ue.render("editor"); }
另一種就是使用<%= %>進行賦值
<script id="editor" type="text/plain"><%= styleValue %> </script>
這兩種方案都不錯,說明一下div或者scritp都可以,只要是個容器就Ok,文檔里的'editor'就是容器的id,后台獲取可以用過下面的方式獲取。
Request.Params["editorValue"];
這里面的editorValue是默認的textarea的ID可以在初始時通過ueditor的textarea字段修改。
好了就寫到這里。
轉載請注明原創地址。
最后上個圖,我只用了其中的部分功能。