2014-01-24 2 views
0

Я рассмотрел несколько вопросов на этом форуме и сайт CKEditor по этой теме, но пока ничего не помогло. Прежде всего, я запускаю CKEditor 4.3.2 на сайте SharePoint 2010, используя встроенные редакторы в модальном диалоге jQuery. Добавление 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"}); 
    } 
    

Кроме того, я настроить целевые поля как divs с использованием contenteditable установлено значение true, например:

Сценарий работает хорошо, пока не попадет на исключение на строке 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, и мне не повезло даже с документацией. Я добавил строку CKEDITOR.disableAutoInline = true чуть выше вызовов setToolbar и добавил CKEDITOR.inline (divName); как первая строка в setToolbar(). Это правильное направление? Можете ли вы привести пример? – AurumPotabile

Смежные вопросы