Мне нужно полностью отключить отступы упорядоченных и неупорядоченных списков (<ul>
, <ol>
) в CKEditor (4.2 или 4.3), потому что мне нужно преобразовать (очень ограниченное подмножество) HTML в другой язык разметки, который не поддерживает отступы.отключить плагин отступов CKEditor
Я попробовал несколько подходов, но не имели никакой удачи:
Try 1: Удалите плагин с помощью конфигурации
config.removePlugins = 'indent,indentlist,indentblock';
Я предполагаю, что это не работает, потому что эти плагины как представляется, требуется - вы не можете удалить их при создании пакета CKEditor с веб-сайта.
При просмотре через консоль FireBug эти плагины все еще существуют. Там даже не существует собственной папки с плагинами - кажется, они встроены в ядро.
Try 2: Override TAB ключ
Я создал новый плагин disableTab
, что не делает совершенно ничего (кроме return true;
об исполнении).
Плагин регистрируется в качестве обработчика для нажатия клавиши клавиши TAB:
config.keystrokes = [
[ 9, 'disableTab' ] // disable TAB key to avoid nesting!
];
К сожалению, плагин не работает при нажатии вкладки на первом уровне списка (<li>
или <ol>
). Интересно, что он работает при нажатии TAB на втором уровне списка (ol > li > ol > li
), он не создает больше вложенных списков ниже второго уровня. Я точно знаю, что мой плагин выполнен, потому что я вставил alert()
в свой плагин для тестирования. По крайней мере, это то, что происходит в моем Firefox.
Но мне нужно, чтобы отключить отступы целиком, а не только над уровнем> 2.
Попробуйте 3: Блок нажатие клавиши с помощью blockedKeystrokes
в конфигурации редактора:
не работает, даже если она должна по к документации:
config.blockedKeystrokes = [ 9 ];
Try 4: Удалить нажатие клавиши во время выполнения
Согласно документации API этот код должен отключить нажатие клавиши, но он не работает по какой-то причине:
for (instance in CKEDITOR.instances) {
var editor = CKEDITOR.instances[instance];
editor.setKeystroke(9, false);
}
Любая идея, как удалить отступ списков в CKEditor?
Я не понимаю, почему ни один из этих подходов не работает. Если вы знаете, почему, пожалуйста, дайте мне знать.
Update:
Интересно, что этот код встречает меня почти все ключевые события, за исключением нажатия клавиши TAB:
editor.on('key', function(e) { alert ("hi"); return false; });
Так что, похоже мои настройки (LinuxMint 13 [Gnome 2] + Firefox 18 + CKEditor 4.2) не запускает обработчик ключевых событий для ключа TAB. Может быть, плагин отступа использует какое-то другое событие? Размытие?
Update 2:
Это Firefox (возможно Linux только) вопрос. Несколько подходов отлично работают с Chrome или Internet Explorer.
Смотрите, если это работает: '(«ключ»editorInstace.on , function (e) {return e.data.keyCode! === 9;}); ' – epascarello