Как убрать теги br в CKeditor

Был установлен CKeditor версии 4.4.4. с нужным набором плагинов. В работе очень раздражало то, что при переходе на следующую строку по клавише Enter, редактор добавлял тег <br>, из-за которого образовывались большие отступы между строками.

В течении 3-х дней пробовал решить проблему разными способами, но ничего не помогало. И тут мистика - нашел наконец решение, которое помогло избавиться от проблемы!

Изначально, файл config.js у меня выгледел так:

CKEDITOR.editorConfig = function( config ) { 
config.toolbarGroups = [
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'links' },
{ name: 'insert' },
{ name: 'forms' },
{ name: 'tools' },
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'others' },
'/',
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'about' } ];
config.removeButtons = 'Underline,Subscript,Superscript';
config.format_tags = 'p;h1;h2;h3;pre';
config.removeDialogTabs = 'image:advanced;link:advanced';
};

Я добавил в него следующий код:

CKEDITOR.on('instanceReady', function (ev) { 
var writer = ev.editor.dataProcessor.writer;
writer.indentationChars = ' ';

var dtd = CKEDITOR.dtd;
for (var e in CKEDITOR.tools.extend({}, dtd.$block, dtd.$listItem, dtd.$tableContent)) { ev.editor.dataProcessor.writer.setRules(e, {
indent: false,
breakAfterOpen: false,
breakAfterClose: false
});
}

for (var e in CKEDITOR.tools.extend({}, dtd.$list, dtd.$listItem, dtd.$tableContent)) { ev.editor.dataProcessor.writer.setRules(e, {
indent: true,
});
}
});

В итоге получилось:

CKEDITOR.editorConfig = function( config ) {
// начало кода
CKEDITOR.on('instanceReady', function (ev) {
var writer = ev.editor.dataProcessor.writer;
writer.indentationChars = ' ';

var dtd = CKEDITOR.dtd;
for (var e in CKEDITOR.tools.extend({}, dtd.$block, dtd.$listItem, dtd.$tableContent)) { ev.editor.dataProcessor.writer.setRules(e, {
indent: false,
breakAfterOpen: false,
breakBeforeClose: false,
breakAfterClose: false
});
}

for (var e in CKEDITOR.tools.extend({}, dtd.$list, dtd.$listItem, dtd.$tableContent)) { ev.editor.dataProcessor.writer.setRules(e, {
indent: true,
});
}
});
// конец кода

config.toolbarGroups = [
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'links' },
{ name: 'insert' },
{ name: 'forms' },
{ name: 'tools' },
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'others' },
'/',
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'about' } ];

config.removeButtons = 'Underline,Subscript,Superscript';
config.format_tags = 'p;h1;h2;h3;pre';
config.removeDialogTabs = 'image:advanced;link:advanced';
};

И все прекрасно заработало. Никаких тегов <br>, редактор при нажатии на Enter больше не добавляет!

 First maniac| 29.08.2014 00:00
Рейтинг
Комментарии
Нет комментариев. Ваш будет первым!
Для написания комментария необходимо Войти или Зарегистрироваться
Войти на сайт