Mi piacerebbe avere più istanze di CKEditor basate sulle stesse impostazioni di configurazione, ma con altezze diverse. Ho provato ad installare config con l'altezza di default, impostare il primo esempio, allora ignorando l'altezza & impostazione del 2 ° esempio:Come impostare CKEditor per istanze multiple con altezze diverse?
var config = {
.....
height:'400'
};
$('#editor1').ckeditor(config);
config.height = '100';
$('#editor2').ckeditor(config);
... ma ho due istanze CKEditor che entrambi hanno 100px di altezza .
Ho anche provato questo:
CKEDITOR.replace('editor2',{
height: '100'
});
.. ho avuto messaggi di errore che l'istanza già esisteva. Ho cercato un po 'su & e ho trovato qualcuno in una situazione simile a cui ho consigliato di distruggere() l'istanza prima di replace(), ma sembra troppo complicato per impostare semplicemente un'altezza iniziale diversa .
Alla fine ho creato due configurazioni differenti & copiati sulla proprietà 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);
C'è un modo migliore? Qualcosa che mi manca? C'è this question ma non hanno pubblicato abbastanza per essere utile, & this very similar question non ha avuto risposta. Grazie!
Aggiornamento:
Questo sembra essere un capriccio di movimentazione tempistica/config di CKEditor - config viene letta & applicato dopo (sto cercando di indovinare dopo quadro DOM del redattore è stato istituito), piuttosto che quando l'editor viene prima istanziato.
Quindi, qualsiasi modifica alle impostazioni di configurazione effettuate subito dopo il primo redattore è istanziato con .ckeditor() sono effettivamente applicata dal curatore ad un certo punto nei seguenti diversi millisecondi. Direi che questo non è un comportamento normale o logico.
Ad esempio, è possibile ottenere il comportamento previsto nel mio primo esempio (ignorando la proprietà config.height
dopo l'istanza del primo editor) per ritardare la seconda istanza di CKEditor con setTimeout(). Firefox aveva bisogno di ~ 100ms, IE aveva bisogno di 1ms. Wacky & sbagliato.
CKEditor dovrebbe leggere le impostazioni di configurazione al momento della prima istanza di ogni editor. Per ora, tutti devono aggirare quella stranezza.
Ho ancora bisogno di tutte le altre impostazioni di configurazione anche se - per quanto ne so, la tua proposta non consente di utilizzare le altre impostazioni di configurazione nella mia domanda iniziale, giusto? – Wick
Ho aggiornato la mia risposta: è utile ora? :) – Reinmar
Bel lavoro sulla funzione prototypedCopy()! Non sono d'accordo sul fatto che la mia domanda "non riguardasse CKEditor" - la tua risposta alla clonazione dell'oggetto config è una soluzione, ma il fatto rimane la mia domanda riguarda la stranezza di CKEditor con l'applicazione delle impostazioni di configurazione ... – Wick