如果有聽過 FCKeditor 的人,那我想 CKeditor 就一定要換上來用。雖然是同一家公司出品的編輯器,但是用了這麼久的 FCKeditor,我對於他的 API 頁面少成這樣實在有點頭痛,講好聽一點有四頁(驚),講難聽一點只有一頁。自從 CKeditor 推出之後,我一看到他的 API 頁面,差點沒痛哭流涕!這才叫做 API 啊(淚)!
CKeditor 是 FCKeditor 的新作品,無論在速度或是 API 上都有很強大的進步。雖然我是在本機測試,但是幾乎瞬間啟動的編輯器畫面還是深得我心啊(大心)。同時官方也提供了完整的 source code 以供參考(
同時在 svn 裡面也有提供 CKPackager 給你下載,你可以用 pack 檔案來打包自己想要的 CKeditor 的功能。但是,因為各種原始檔案並沒有詳細說明個別的相依特性,所以自行打包的話就必須要承擔一點風險,不然編輯器有可能會跛腳。所以,除非必要,不然還是不建議自己打包,你可以使用輕量化的 ckeditor_basic 就好(完整版的 CKeditor 檔案高達 265KBytes)。
首先,我們直接跳過官方那個鳥鳥的 Develop's Guide 吧(喂喂)。先從源頭看起,當你下載回來解壓縮之後,你會看到有 _source 這個資料夾,他就是所有的原始檔案,數量龐大,不建議胡亂服用(沒人叫你吃),最重要的地方是 core 資料夾,裡面是整個 CKeditor 的核心,依照 ckeditor_basic 的設定,我們由五個 js 看起。
- ckeditor_base.js
- event.js
- editor_basic.js
- env.js
- ckeditor_basic.js
至於這些東西能做些甚麼事情?
- event 提供:
- 觸發(fire, fireOnce)
- 監聽(on)
- 監聽控制(hasListeners, removeListeners)
- editor 提供:
- DOM 控制(element, elementMode)
- 編輯區方法(暫不詳述,大致上跟 FCK 差不多,但是有一些新的,也有未完成的)

接著我來說幾個很有趣的東西(雖然是屬於 editor_base,但需要額外 plugin 支援):
- 虛擬(假)元件(需要 plugin 支援,並未包含在官方發佈的完整 ckeditor.js 中)
- 截取快照
其實這個功能我已經在 FCKeditor 實作出來了,所以我很樂見他有內建這樣的功能。但是,稍微深入一點,他這個方法要呼叫還不是那麼容易,首先,你要先準備一組符合 CKEDITOR 標準的元件給他,換句話說,你必須要用 CKEDITOR API 先建立一個元件(就是你要插入的 code),然後再利用這個方法把元件換成假的。至於說,這樣作會不會多此一舉?我個人是覺得見仁見智,你要用正規表示式去洗其實也可以啦。
至於截取快照,他是另一種"儲存"的方式,不真的儲存,而是將已經輸入好的內容放到某個變數裡面(就是丟到記憶體裡面啦),然後你可以隨時取出來用。這樣可以解決遠端連線出問題的時候資料的保存,但是缺點是,萬一客戶端這邊當機,也一樣一去不復返啊(茶)。
就暫時先到這,接下來將會介紹 htmlParser/htmlWrite 這個核心命脈 plugin(笑)。
目前有 12 則來自噗浪的回應
| 寡人就是朕 說 搬凳子..等著下一集... | |
| 雞生蛋生雞生蛋 說 試了一下 Demo ,啟動速度真的快太多了~ | |
| SDpower
說 | |
| 閃光洽 說 寡人就是朕: SDpower: 雞生蛋生雞生蛋: 速度真的是超越神速的超神速啊~~~~ 但是 plugins 也為免太多了吧吧吧吧吧吧... | |
| 大澤木小鐵
| |
| linli列夫 說 沒用過FKC,第一次看到看成KFC了 | |
| shuoshuo 不禁想起三年前客製專用 FCK 的日子…… | |
| 閃光洽
說 shuoshuo: 我以前也是客製 FCK... 跟地獄沒兩樣 | |
| 閃光洽
說 這兩天寫著寫著,默默的挖到了幾個 bug... 不知道是不是 CKeditor 還沒有開發完的關係 | |
| 大澤木小鐵 是喔?快分享一下~免得我也踩到雷~ | |
| 閃光洽 說 大澤木小鐵: 雷都在 plugins 裡面比較多,至於在 editors 裡面雖然是有,但是應該不影響使用。如果有影響的話早就被修正了,事實上我也不知道那到底算不算真的 bug。 | |
| 大澤木小鐵 瞭解...我也是剛換上去而已,還沒實際使用...看來要多注意一下 |
展開噗浪回應
Posted by hina


