Я хотел бы иметь несколько экземпляров CKEditor на основе тех же настроек конфигурации, но с разной высотой. Я попытался настроить конфигурацию с высотой по умолчанию, настроив первый экземпляр, затем переопределив высоту и установив второй экземпляр:
var config = {
.....
height:'400'
};
$('#editor1').ckeditor(config);
config.height = '100';
$('#editor2').ckeditor(config);
... но я получаю два экземпляра CKEditor, которые имеют высоту 100 пикселей.
Я также пробовал это:
CKEDITOR.replace('editor2',{
height: '100'
});
.. Я получил сообщения об ошибках, которые уже существовал. Я немного искал и обнаружил, что кто-то в подобной ситуации получил совет, что вам нужно уничтожить() экземпляр перед заменой(), но это кажется слишком сложным для установки другой начальной высоты.
В конце концов я настроил две разные конфигурации и скопировал свойство toolbar_Full:
var config1 = {
height:'400',
startupOutlineBlocks:true,
scayt_autoStartup:true,
toolbar_Full:[
{ name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] },
{ name: 'editing', items : [ 'Find','Replace','-' ] },
{ name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ] },
{ name: 'paragraph', items : [ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl' ] },
'/',
{ name: 'links', items : [ 'Link','Unlink','Anchor' ] },
{ name: 'insert', items : [ 'Image','HorizontalRule' ] },
{ name: 'styles', items : [ 'Styles','Format','Font','FontSize' ] },
{ name: 'colors', items : [ 'TextColor','BGColor' ] },
{ name: 'tools', items : [ 'Maximize', 'ShowBlocks' ] },
{ name: 'document', items : [ 'Source' ] }
]
}
var config2 = {
height:'100',
startupOutlineBlocks:true,
scayt_autoStartup:true
};
config2.toolbar_Full = config1.toolbar_Full;
$('#editor1').ckeditor(config1);
$('#editor2').ckeditor(config2);
Есть ли лучший способ? Что-нибудь мне не хватает? Там этот вопрос, но они не опубликовали достаточно, чтобы быть полезными, и этот очень похожий вопрос hasn ' ответили. Спасибо!
Update:
Это, по-видимому, сложность обращения к настройке времени/конфигурации CKEditor - конфигурация читается и применяется позже (я предполагаю, что после настройки рамки DOM редактора), а не при первом экземпляре редактора.
Таким образом, любые изменения настроек конфигурации, сделанные сразу после создания первого редактора с помощью .ckeditor(), фактически применяются редактором в какой-то момент в следующие несколько миллисекунд. Я бы сказал, что это ненормальное поведение или логическое.
Например, вы можете получить ожидаемое поведение в моем первом примере (переопределяя свойство config.height
после создания первого редактора) для работы, задерживая второй экземпляр CKEditor с помощью setTimeout(). Firefox необходимо ~ 100 мс, IE нужно 1 мс. Нелепый и неправильный.
CKEditor должен прочитать настройки конфигурации, когда каждый редактор сначала создается. На данный момент все должны работать над этой причудой.