我想基於相同的配置設置,但具有不同高度的CKEditor的多個實例。我試圖建立配置使用默認的高度,建立了第一個實例,然後重寫高度&設立的第二個實例:如何爲不同高度的多個實例設置CKEditor?
var config = {
.....
height:'400'
};
$('#editor1').ckeditor(config);
config.height = '100';
$('#editor2').ckeditor(config);
...但我得到兩個CKEditor的情況下,這兩個具有100像素高度。
我也試過這樣:
CKEDITOR.replace('editor2',{
height: '100'
});
..我得到的實例已經存在錯誤消息。我搜索了一下&發現有人在類似的情況下得到的建議是你必須在replace()之前銷燬實例(),但是這似乎太複雜了,因爲只設置了不同的初始高度。
在我設置複製了toolbar_Full物業兩種不同CONFIGS &末:
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的的時序/配置處理怪癖 - 在配置讀&後應用(我猜編輯器的DOM的框架已經建立之後),而不是編輯器首次實例化時。
因此,在配置設置所作的任何更改立即後的第一個編輯器進行實例化.ckeditor()是實際上在一些點在以下幾毫秒編輯器應用。我認爲這不是正常的行爲,也不合邏輯。例如,你可以在我的第一個例子中得到預期的行爲(在第一個編輯器被實例化之後覆蓋config.height
屬性)通過使用setTimeout()延遲第二個CKEditor實例來工作。 Firefox需要〜100ms,IE需要1ms。古怪&錯誤。
CKEditor應該在每個編輯器首次實例化時讀取配置設置。現在,每個人都必須圍繞這個怪癖行事。
我還需要其他所有配置設置,但 - 據我所知,你的建議不允許在我原來的問題使用其他配置設置,對不對? – Wick
我已經更新了我的答案 - 現在有幫助嗎? :) – Reinmar
在prototypedCopy()函數上幹得不錯!我只是不同意我的問題「不是關於CKEditor」 - 你克隆配置對象的答案是一個解決方案,但事實仍然是我的問題是關於CKEditor應用配置設置的時間偏差... – Wick