2014-01-10 7 views
0

Мне нужно полностью отключить отступы упорядоченных и неупорядоченных списков (<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.

+0

Смотрите, если это работает: '(«ключ»editorInstace.on , function (e) {return e.data.keyCode! === 9;}); ' – epascarello

ответ

3

Я просто проверил быстро, и это выглядит, хотя indentlist является требует list плагин, если вы:

0) Скачать источники CKEditor из http://github.com/ckeditor/ckeditor-dev

1) Удалить

requires: 'indentlist', 

из plugins/list/plugin.js

2) Удалить

indentlist: 1, 
indentblock: 1, 

из dev/builder/build-config.js

3) Построить пакет релиза с dev/builder/build.sh (на Windows, используйте "Git Bash" оболочки)

Вы найдете в папке dev/builder/release/ckeditor версию выпуска, в которой вы нуждаетесь.

(это довольно редко, что обязательный плагин на самом деле не требуется, но это редкость, так что один не нужны отступы для списков ;-))

+0

большое спасибо за этот маленький howto! на более позднем этапе проекта (следующий крупный выпуск) мы, вероятно, сделаем мини-сборку CKeditor. На данный момент я буду придерживаться отключения клавиши TAB ;-) – Kaii

1

попробуйте изменить код:

editor = CKEDITOR.replace('element_name'); 

editor.on('key', function(e) { 
var key = e.data.keyCode;  
if(key==9) { 
return false; 
} 

, который должен работать, просто изменить «ELEMENT_NAME» в текстовое поле, что вы заменяете с CKEditor

+0

не работает. Интересно, что 'editor.on ('key', function (e) {alert (" hi "); return false;}' приветствует меня практически для любой клавиши, кроме TAB! Кажется, что TAB-ключ просто не запускает 'on («ключ») 'в моей установке Linux + Firefox + CKEditor! Итак, как я могу это изменить?;) – Kaii

+0

, пожалуйста, загляните в обновление моего вопроса – Kaii

+0

, приведенный выше код успешно отключает мою кнопку вкладок в ckeditor, но Я настроен на установку Windows + Chrome + CKEditor 4.3.1. – CyberGuru

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