2014-01-24 152 views
0

我已經瀏覽了此論壇和CKEditor網站上關於此主題的幾個問題,但目前爲止沒有任何幫助。首先,我在SharePoint 2010網站上運行CKEditor 4.3.2,在jQuery UI模式對話框中使用內聯編輯器。將CKEditor添加到對話框是無痛的,但我不能說建立一個更細的工具欄是一樣的。這是我到目前爲止已經完成:CKEditor自定義工具欄配置

  1. slimConfig.js

    CKEDITOR.editorConfig = function(config) { 
        config.toolbar = [ 
         {name: "basicstyles", items: ["Bold", "Italic", "Underline", "Strike", "Subscript", "Superscript", "-", "RemoveFormat"]}, 
         {name: "paragraph", items: ["NumberedList", "BulletedList"]} 
        ]; 
    } 
    
  2. 的JavaScript

    setToolbar("notes"); 
    setToolbar("access"); 
    //. . .[several other fields]. . . 
    
    function setToolbar(divName) { 
        CKEDITOR.replace(divName, {customConfig: "/customConfigs/slimConfig.js"}); 
    } 
    

此外,我已經設置了目標領域div使用contenteditable設置爲true,如下所示:

<div id="notes" contenteditable="true"></div> 

該腳本似乎運行良好,直到它在ckeditor.js行308上遇到異常,錯誤文本是「編輯器實例已附加到提供的元素」。再經過幾步後,它會返回到308行的同一區域,此時我會收到一條終端異常,並顯示消息「異常拋出並未捕獲」。

我相信我現在已經正確設置了一切,但不知道該怎麼做出這個錯誤。有沒有人有獲得自定義工具欄設置的經驗?

回答

1

默認情況下,CKEditor用內聯編輯器替換contenteditable="true"的所有元素。所以當你試圖再次替換它時,它會拋出一個錯誤,因爲它沒有任何意義。

如果您想完全控制編輯器,請將CKEDITOR.disableAutoInline設置爲false並手動處理所有實例。當然,您可以隨時在CKEDITOR.instances對象中找到您的實例,如果需要,可以致電editor.destroy()

請參閱http://docs.ckeditor.com/#!/guide/dev_inline

+0

我很欣賞反饋,oleq!不幸的是,我對CKEDITOR很陌生,即使有文檔,我也沒有多少運氣。我在setToolbar調用上方添加了CKEDITOR.disableAutoInline = true行,並添加了CKEDITOR.inline(divName);作爲setToolbar()中的第一行。這是正確的方向嗎?你能提供一個例子嗎? – AurumPotabile