2012-09-06 34 views
5

我在CKEditor的圖像插件中隱藏預覽元素存在問題。我需要一個非常簡單的圖像對話框,只有輸入字段的圖像源和形式的圖像上傳按鈕。 所以我刪除使用這些自定義配置設置不必要的元素:刪除CKEditor的圖像插件中的htmlPreview

CKEDITOR.on('dialogDefinition', function(ev) 
{ 
    var dialogName = ev.data.name; 
    var dialogDefinition = ev.data.definition; 
    if (dialogName == 'image'){ 
     dialogDefinition.removeContents('advanced'); 
     dialogDefinition.removeContents('Link'); 
     var infoTab = dialogDefinition.getContents('info'); 
     infoTab.remove('ratioLock'); 
     infoTab.remove('txtHeight');   
     infoTab.remove('txtWidth');   
     infoTab.remove('txtBorder'); 
     infoTab.remove('txtHSpace'); 
     infoTab.remove('txtVSpace'); 
     infoTab.remove('cmbAlign'); 
     infoTab.remove('txtAlt'); 
    } 
}); 

問題開始時,我試圖隱藏htmlPreview元素。如果我簡單地添加infoTab.remove('htmlPreview ');,將會發生錯誤:Uncaught TypeError: Cannot call method 'setStyle' of null,因爲已刪除元素的代碼依賴關係。我用Google搜索了很多,似乎有解決這個問題的兩個方面 - 手動編輯插件的源代碼編寫there

我想唯一的解決方案是從圖像/對話框中刪除所有的JavaScript函數 /image.js引用這些HTML對象,則刪除該 。

我試圖按照此意見,但無法編輯沒有後續錯誤的源文件) 或寫我自己。當然,我可以簡單地添加一些css規則並隱藏元素,但我認爲這不是一個好主意。 這個問題已經夠老了,我確定有一個很好的解決方案,但是我沒有找到它。 希望你能幫助我。先謝謝你。

P.S.我有最新版本的CKEditor - 3.6.4。

回答

7

由於該圖像對話框中寫入的方式,你不能輕易刪除預覽無需進一步調整文件的其餘部分也去掉了所有引用。

我會建議你使用我的配置插件(或寫類似的代碼)如下所述:http://alfonsoml.blogspot.com.es/2012/04/hide-dialog-fields-in-ckeditor.html

config.hideDialogFields="image:info:htmlPreview"; 

你可以從我的博客下載插件,或者如果您已經切換到的CKEditor 4,加它到您的版本:http://ckeditor.com/addon/confighelper

+0

這仍然是一個簡單而有效的解決方案在11月14日。插件(可從ckeditor網站鏈接)節省了我的時間和小時。謝謝@AlfonsoML –

0

ü可以嘗試infoTab.remove('htmlPreview');

+0

您還沒有仔細閱讀我的問題。我提到這種方法不起作用。 –