私はCKEditorの複数のインスタンスを、同じ設定値に基づいていますが、高さが異なるようにしたいと思います。私は、2番目のインスタンスの設定高さ&をオーバーライドし、第一のインスタンスを設定し、デフォルトの高さと設定を設定してみました:高さの異なる複数のインスタンスに対してCKEditorを設定するにはどうすればよいですか?
var config = {
.....
height:'400'
};
$('#editor1').ckeditor(config);
config.height = '100';
$('#editor2').ckeditor(config);
を...しかし、私は両方とも100pxに高さを持つ2つのCKEditorバージョンのインスタンスを取得します。
また、私はこれを試してみました:
CKEDITOR.replace('editor2',{
height: '100'
});
..私はインスタンスがすでに存在していたエラーメッセージを得ました。私はちょっと調べました&似たような状況にいる人が、replace()の前にインスタンスを破棄しなければならないというアドバイスがありましたが、ちょうど別のものを設定するには複雑すぎるようです。の高さです。私は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);
は、より良い方法はありますか?私が行方不明のものは何ですか? this questionがありますが、それらは役に立つほど十分に投稿されていません。& this very similar questionまだ回答がありません。ありがとう!
更新:
これはCKEditorバージョンの癖を扱うタイミング/ configにあると思われる - 設定は、&を後で適用読み込まれる(エディタのDOMフレームワークが設定された後、私は推測している)のではなくエディタが最初にインスタンス化されるとき。
ので、コンフィグ設定を変更)は、(第一エディタは.ckeditorでインスタンス化され、すぐに後を作っ実際には、次の数ミリ秒である時点でエディタによってを適用しています。私はこれが通常の行動ではない、または論理的ではないと主張したい。
たとえば、第1の例(最初のエディターのインスタンス化後にconfig.height
プロパティをオーバーライド)で、setTimeout()を使用して2番目のCKEditorインスタンスを遅延させることで、動作を期待できます。 Firefoxは~100ms必要、IEは1ms必要。 Wacky &が間違っています。
各エディタが最初にインスタンス化されるときに、CKEditorは設定を読みます。今のところ、誰もがその奇妙なことを回避しなければならない。
を使用 - 私の知る限り、あなたの提案は、私の元の質問の他のコンフィグ設定を使用することはできません、右? – Wick
私は自分の答えを更新しました - これは今役に立ちますか? :) – Reinmar
prototypedCopy()関数の素晴らしい仕事!私は私の質問が「CKEditorについてではない」という意見に同意しました。設定オブジェクトを複製するという答えは1つの解決策ですが、実際には私の質問はCKEditorのタイミングに関するものです。 – Wick