2014-12-31 67 views
0

我很難禁用某些CKEditor按鈕。基本上,我想遍歷所有加載的命令,並在運行時禁用它們,以便它們表示爲灰色按鈕。這是我做這個代碼:禁用CKEditor中的命令

for (var key in CKEDITOR.instances.editor1.commands) { 
     if (CKEDITOR.instances.editor1.commands.hasOwnProperty(key)) { 
      console.log("disabling command " + key); 
      CKEDITOR.instances.editor1.commands[key].disable(); 
     } 
    } 

我CKEditor的設置使用的圖片,背景顏色,粗體,斜體,下劃線,插入/刪除項目列表,複製和粘貼的插件。但是,通過此方法實際禁用的唯一按鈕是圖像按鈕;其他人保持啓用狀態,即使我看不到任何錯誤,並且我的console.log正在爲每個人啓動。

任何意見將不勝感激。

回答

1

這是棘手的,你想要做什麼。即使被禁用,一些命令(context sensitive ones)也會立即在selectionChange event上重新啓用,因爲它們遵守用戶操作並檢查它們是否適用於考慮當前選擇(即cut命令等待創建一些未摺疊選擇)。

如果要完全禁用編輯,則應使用editor.setReadOnly()。但是,如果您想禁用命令並讓用戶鍵入,則需要進行一些黑客攻擊,因爲這與所見即所得的編輯器完全相反。