Como configurar o CKEditor para várias instâncias com diferentes alturas?

Eu gostaria de ter várias instâncias do CKEditor com base nas mesmas configurações, mas com alturas diferentes. Tentei configurarconfig com a altura padrão, configurando a primeira instância e, em seguida, substituindo a altura e configurando a segunda instância:

var config = {
    .....
    height:'400'
};

$('#editor1').ckeditor(config);
config.height = '100';
$('#editor2').ckeditor(config);

... mas eu recebo duas instâncias de CKEditor que têm 100px de altura.

Eu também tentei isso:

CKEDITOR.replace('editor2',{
    height: '100'
});

.. Eu tenho mensagens de erro que a instância já existia. Eu procurei um pouco ao redor e encontrei alguém em uma situação parecida, tenho conselhos que você tem que destruir () a instância antes de replace (), mas isso parece muito complicado para apenas definir um diferenteinicial altura.

No final, eu configurei duas configurações diferentes e copiei a propriedade 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);

Existe uma maneira melhor? Alguma coisa que eu estou perdendo? Háessa questão mas eles não postaram o suficiente para serem úteis,esta pergunta muito semelhante não foi respondida. Obrigado!

Atualizar:

Isso parece ser uma peculiaridade de manipulação de tempo / configuração do CKEditor - a configuração é lida e aplicada depois (acredito que o framework DOM do editor tenha sido configurado) e não quando o editor é instanciado pela primeira vez.

Então, qualquer alteração nas configurações feitasimediatamente depois o primeiro editor é instanciado com .ckeditor () sãorealmente aplicado pelo editor em algum momento nos seguintes vários milissegundos. Eu diria que isso não é um comportamento normal ou lógico.

Por exemplo, você pode obter o comportamento esperado no meu primeiro exemplo (sobrepondo oconfig.height propriedade após o primeiro editor ter sido instanciado) para trabalhar atrasando a instância do segundo CKEditor com setTimeout (). O Firefox precisava de ~ 100ms, o IE precisava de 1ms. Maluco e errado.

O CKEditor deve ler as configurações quando cada editor é instanciado pela primeira vez. Por enquanto, todo mundo tem que contornar essa peculiaridade.

questionAnswers(6)

yourAnswerToTheQuestion