特點
UEditor 在設計上採用了經典的分層架構設計理念,儘量做到功能層次之間的輕度耦合。具體來講,整個系統分為了核心層、命令外掛程式層和UI層這樣三個低耦合的層次。
1、核心層提供了編輯器底層的一些方法和概念,如DOM樹操作、Selection、Range等。
2、在核心層之上覆蓋的是命令外掛程式層。之所以叫命令外掛程式層,是因為UEditor中所有的功能型實現都是通過這一層中的命令和外掛程式來完成的,並且各個命令和外掛程式之間基本互不耦合——使用者需要使用哪個功能就導入哪個功能對應的命令或者外掛程式檔案,完全不用考慮另外那些雜七雜八的JS檔案(極少數外掛程式除外,關於這些外掛程式下文會整理出一個依賴列表來供同學們參考)。
理論上來講,所有的命令都是可以用外掛程式來代替的,但是依然將兩者分開的主要原因是命令都是一些靜態的方法,無需隨editor實例初始化,從而最佳化了編輯器的性能。而外掛程式隨編輯器的初始化而初始化,性能上會有少許的影響,但相比命令而言,外掛程式能夠完成更加複雜的功能。其中最主要的一個特點是在外掛程式內部既可以為編輯器註冊命令,也可以為編輯器綁定監聽事件。這個特點使得為編輯器添加任何功能都可以在外掛程式中獨立完成。
3、在命令外掛程式層之上則是UI層。UEditor的UI設計與核心層和命令外掛程式層幾乎完全解耦,簡單的幾個配置就可以為編輯器在界面上添加額外的UI元素和功能,具體的配置下面將會深入闡述。
優點
1、體積小巧,性能優良,使用簡單
2、分層架構,方便定製與擴展
3、滿足不同層次用戶需求,更加適合團隊開發
4、豐富完善的中文文檔
5、多個瀏覽器支持:Mozilla, MSIE, FireFox, Maxthon,Safari 和Chrome
6、更好的使用體驗
7、擁有專業QA團隊持續支持,已套用在百度各大產品線上
套用領域
百度產品線
百度百科、百度空間、百度經驗、百度旅遊、百度知道、百度貼吧、百度新知
其他公司產品
麥庫記事、網易lofter
更新記錄
1.3.6版本
新增功能
•支持視頻上傳插入,多瀏覽器自適配播放器
最佳化修復
•script/style標籤內容,在ie下的編輯狀態顯示內容問題
•修復預覽視窗沒有滾動條問題
•修復在ie67下自動定址的問題
•修復ff下圖片拖拽大小不觸發contentchange問題
•修復注釋被刪除的問題,包括在script中的
•修復在源碼模式下不能使用setContent的問題
•修復在給定寬度為100%時,ie11在拖動視窗大小時,編輯區域不隨著變化的問題
•修復在ie67下destroy方法調用報錯
•修復在插入代碼模式下,ie9+以上的瀏覽器鍵盤操作(enter/tab等)錯誤或者失效的問題
•修復不規則源碼在ie下解析成文本的問題
•修復p標籤在ie下嵌套的問題
•修複目錄大綱更新事件導致失焦點的問題
•針對word貼上列表到編輯器中自動轉換為list標籤,由於有誤命中情況,所以默認關閉該功能。提供autoTransWordToList配置項(默認為false),開發者可酌情配置。
•添加禁止表格嵌套的開關,解決excel中貼上到編輯器中會有冗餘的嵌套表格問題,配置項disabledTableInTable(默認是true)。
•過濾掉excel的表格貼上到ie中時,會有bitmap的冗餘占點陣圖片問題
1.3.5版本
新增功能
•asp後台的支持
•添加本地自動保存功能
•增加數據可視化展示功能
•編輯器實例上添加isFocus,blur方法
•新增在chrome下針對圖片的拖拽寬高功能
•新增在高端瀏覽器下,qq截圖貼上上傳,拖拽圖片到編輯上傳
•添加表格插入列標題功能
•添加設定表格可排序功能,支持表格在預覽頁排序
•添加生成目錄功能
最佳化修復
•ie8以上版本使用w3cRange
•使用grunt作為打包工具
•修復了過濾規則對於script/style的內容的轉碼
•自動定址功能重構
•修復下拉選單高度問題
•針對ie默認帶有的autolink功能,添加開啟禁用選項,創建時傳入autolink:false就可禁用ie的autolink功能
•支持插入動態地圖
**API文檔更新**
•圖片上傳路徑可配置,增加前後端路徑驗證
•對uparse進行了拆分重構
•隨下載包提供各種功能說明文檔
•背景顏色功能重構,可以在預覽頁顯示背景
•重寫了查找替換外掛程式,解決ff下window.find方法失效的問題
1.2.6.1版本
新增功能
•查找替換支持正則表達式
•增加類似word中的快捷選單,默認關閉
•針對默認過濾迴轉換div為p標籤,提供了配置開關allowDivTransToP,默認為true
•工具列支持指定位置折行,'|'表示分割符,'||'表示折行
最佳化修復
•修復了ie67下初始化寬高給定百分比
•修復了在ie下刪除分割線後游標定位的問題
•提供了手動載入語言檔案,避免ie下有時會因語言檔案載入失敗導致編輯器載入失敗,提示"not import language file"的錯誤
•最佳化了編輯器初始化時獲得contentWindow可能不存在的情況
•最佳化了編輯器載入自定義樣式的問題,默認initialStyle傳入的css樣式優先權最高,其次是指定的外部css檔案
•表格操作功能升級,最佳化了對表格的拖拉及雙擊操作,並且支持IE6+瀏覽器
•修復編輯器在禁用狀態下仍然可以拖動表格框線的bug
•修復了分割線不能刪除的問題
•修復了初始化內容過多時,編輯器不自動長高,要點擊編輯器才會長高的問題
•最佳化了添加字元框線的展示效果,避免出現重疊的問題
•修復下拉選單超出螢幕的bug
•修復table屬性初始化時table布局錯誤的bug
•最佳化了選擇工具列上下拉選單類型的操作命令時,選區會有閃動的問題
•最佳化了關於swfupload的一個xss漏洞
•最佳化了對於ie9,10的支持
1.2.6.0版本
新增功能
•新增了編輯器路徑的設定,可以不用手動設定路徑,自動識別相關路徑,解決路徑設定繁瑣的問題
•重寫了過濾貼上機制,採用黑白名單,可以書寫符合自己需求的過濾規則,可以完全定義標籤的屬性,甚至是style上的某個屬性及其數值
•數據同步改為失去焦點就執行,可以不再使用sync方法手動同步數據
•改使用closure的壓縮工具
•表格支持排序和隔行顯示
•最佳化了undo/redo操作
•最佳化了ui界面
•添加了字型框線
最佳化修復
•最佳化了拖拽機制,處理浮動圖片拖拽不能跟指定的某行對齊
•最佳化了backspace/del鍵的操作
•重寫了插入代碼功能,插入代碼編寫支持tab和回車鍵
•列表貼上最佳化,模仿word的列表貼上
•修復jsp後台8080連線埠,截屏外掛程式返回錯誤的問題
•修復firefox下編輯狀態切換的問題
•修複查找替換報錯
•修復表格新增行後寬度丟失問題
•修復表格底紋和表格排序多語言配置遺漏
•解決右鍵,貼上,對話框內容報錯
•修復設定單元格顏色問題
•最佳化大字號下的顯示問題
•解決IE下表格貼上失效問題
•修複選中內容設定成代碼,出現多餘字元的問題
•修復從word貼上內容到編輯器,過濾失效的問題
•修復游標閉合,多次點擊字元框線按鈕,會出現多餘的字元“font”的問題
•修復字元框線效果錯誤的問題
•以及其他的一些問題.
1.2.5版本
新增功能
table整體重構
table支持插入表頭和標題
table支持拷貝
table支持任意調整寬高
table支持任意前插後插行列
table鍵盤操作仿word用戶體驗
添加table平均分布行、列
添加table單元格對齊方式
添加table對齊方式
添加選中部分表格,點擊backspace或delete刪除功能
重寫表格屬性、單元格屬性dialog
貼上支持純文本,源碼,純標籤3個模式選擇
添加計算字數的getContentLength接口
圖片上傳支持參數動態綁定
重寫了list功能,支持一,一),(一),1),(1),——等新的列表標籤
全螢幕快捷鍵 ALT+Z
添加了uparse.js展示頁載入器
最佳化修復
最佳化了插入代碼功能
ie下默認禁用源碼模式下的代碼高亮
截圖功能支持非ie瀏覽器
修正了非ie下中文輸入時回退不準確的問題
改進了鍵盤輸入時做回退的操作
1.2.4版本
新增功能
官網新增API文檔
CSS按照UI結構進行了模組化拆分
新增皮膚切換功能,並提供一套新皮膚(可通過配置項theme來設定)
新增編輯器容器拖動縮放功能,配置項為:scaleEnabled、minFrameWidth、minFrameHeight
新增音樂外掛程式
增加了源碼模式下,全螢幕按鈕可以使用
添加了UE.getEditor工廠方法
添加了針對jquery配合使用的demo
添加了針對jqueryValidation配合使用的demo
添加了初始化編輯器寬高配置,配置為項:initialFrameWidth、initialFrameHeight
功能最佳化
修復塗鴉路徑在配置時,添加參數時請求報錯
修復塗鴉opera下縮放不能使用
修復編輯器全螢幕功能失效問題
codemirror版本升級到最新版
對opera/safari的支持進行了進一步的最佳化
最佳化了部分demo頁的代碼
修改原來的minFrameHeight為拖動時的最小高度
1.2.3版
新增功能
1、新增大小寫功能
2、新增塗鴉功能
3、新增國際化支持
4、新增getAllHtml方法,可以將整個頁面的內容打出來
5、新增插入模板的功能
6、新增背景功能
7、新增UE.instants全局對象,下邊掛接了所有實例化的組件
8、Editor下新增ready方法,當編輯器ready後執行傳入的fn,如果編輯器已經ready好了,就馬上執行fn
9、新增topOffset配置參數,用於設定AutoFloat時工具列距離頂部的高度
10、新增sourceEditorFirst配置參數,用於控制編輯器初始化時是否顯示成源碼模式,默認為否
11、新增在表格內實例化編輯器的demo
12、新增getDialog(dialogName)接口,可以獲取dialog對象
功能最佳化
1、chrome下會出現alt+tab切換時,導致選區位置不對
2、focus方法添加參數可以指向到內容末尾
3、完全支持opera瀏覽器
4、修復了表格中實例化編輯器時工具列浮動錯位問題
1.2.2版
功能最佳化
1、編輯器不可編輯時,可以配置哪些功能可以使用,例如全螢幕
2、table的框線為0時,採用虛線顯示
3、修復firefox下插入大量代碼時,代碼格式顯示不正確的問題
4、附屬檔案上傳成功後顯示初始檔案名稱
5、自定製下載最佳化
6、當圖片上傳逾時時,增加提示信息
7、修復自動排版對H1不生效的問題
8、修復插入超連結,超連結地址包含script標籤,預覽時會執行script語句的問題
1.2.1版
新增功能
1.增加插入百度套用功能
2.插入表情時,按住CTRL鍵可連續插入多個表情
3.按住CTRL+Enter提交表單
4. 增加readonly屬性在editor_config.js,編輯器實例上增加setEnabled,setDisabled方法,設定編輯區域是否可以編輯
5.Editor上添加了getPlainTxt方法,得到編輯器的純文本內容,但會保留段落格式
6.為insertHtml命令添加了過濾機制
7.當選區在一個超連結中,就可以在彈出層中直接修改這個超連結中的文本
8.超連結視窗可以修改超連結顯示的文字
9.為每個plugin的在代碼中添加了配置項的容錯代碼,若配置項不存在,不會報錯
10.提供後台的jsp版本
11.添加是否刪除空的inlineElement節點(包括嵌套的情況)的配置項:autoClearEmptyNode
12.在配置項中增加isShow設定初始化時是否顯示編輯器,在編輯器實例上增加setShow,setHide方法設定編輯器的顯示/隱藏
功能最佳化
1.修正了initialContent賦值失效的問題,賦值順序以標籤內容為先,如果沒有再看initialContent內容
2.getContent將“ ”轉成空格,連續2個空格則以“ ”表示
3.與後台互動的路徑整體進行了調整
4.重寫了ui和和編輯器的互動層,dialog改為顯示時創建,整體代碼減少22k
5.修正了代碼高亮跟jquery衝突的問題
6.改進了多個編輯器實例,使用一個name做為form提交,後台都可以取到
7.修正了chrome下貼上文本帶有white-space樣式, 導致編輯器內容不能折行的問題
1.2.0版
UEditor1.2.0版本是一個里程碑式的版本。除了功能以及性能的跨越式改進和提升(詳見changelog)之外,也對官網的文檔和自定義下載等內容作了很大的更新,支持用戶線上定製並可以實時預覽和使用生成的定製版本,以幫助用戶更快更好的使用UEditor。
新增功能
1、遠程圖片抓取2、伺服器圖片線上管理3、增加了baidu圖片搜尋功能,搜尋圖片然後直接插入到編輯器中4、word的本地圖片取得寛高5、插入視頻,可預覽,並且界面加入了視屏搜尋功能,並且可以插入視屏預覽圖到編輯器6、附屬檔案上傳7、自動排版8、單元格屬性編輯9、ie下的截屏功能10、源碼模式下css進行了簡寫11、添加了上來就可以全螢幕的配置項12、添加了contentchagne事件13、最佳化了首頁自定製下載。
功能最佳化
1、修改了行間距的展示方式
2、段間距變為段前距和段後距
3、改進了autolink的效果
4、分頁符可以刪除
5、增強了表格的編輯功能
6、最佳化了狀態反射的性能,改為編輯器獲得焦點才會觸發,失去焦點不在觸髮狀態查詢
7、修正了focus()方法,執行編輯器實例的focus方法可以選回失去焦點之前的選區
8、重寫了浮動工具列,支持混亂模式下的工具列滾動
9、重寫了autoheight外掛程式,去掉setInterval的方式,並且長高時不在跳動
10、檔案上傳提供flash源碼
11、提供了.net的事例代碼
首頁文檔進行了改進
正式版
新增功能
•新增了編輯器路徑的設定,可以不用手動設定路徑,自動識別相關路徑,解決路徑設定繁瑣的問題
•重寫了過濾貼上機制,採用黑白名單,可以書寫符合自己需求的過濾規則,可以完全定義標籤的屬性,甚至是style上的某個屬性及其數值
•數據同步改為失去焦點就執行,可以不再使用sync方法手動同步數據
•改使用closure的壓縮工具
•表格支持排序和隔行顯示
•最佳化了undo/redo操作
•最佳化了ui界面
•添加了字型框線
最佳化修復
•最佳化了拖拽機制,處理浮動圖片拖拽不能跟指定的某行對齊
•最佳化了backspace/del鍵的操作
•重寫了插入代碼功能,插入代碼編寫支持tab和回車鍵
•列表貼上最佳化,模仿word的列表貼上
•修復jsp後台8080連線埠,截屏外掛程式返回錯誤的問題
•修復firefox下編輯狀態切換的問題
•修複查找替換報錯
•修復表格新增行後寬度丟失問題
•修復表格底紋和表格排序多語言配置遺漏
•解決右鍵,貼上,對話框內容報錯
•修復設定單元格顏色問題
•最佳化大字號下的顯示問題
•解決IE下表格貼上失效問題
•修複選中內容設定成代碼,出現多餘字元的問題
•修復從word貼上內容到編輯器,過濾失效的問題
•修復游標閉合,多次點擊字元框線按鈕,會出現多餘的字元“font”的問題
•修復字元框線效果錯誤的問題
•以及其他的一些問題.