2013-03-28 30 views
2

我有克隆包含CKEditor實例的元素的情況。克隆後,我更改了所有ID,以確保在同一頁面中沒有兩個具有相同ID的元素。我無法訪問克隆版本的CKEditor。事實上,如果我通過元素ID訪問它,我會得到原始的(不是具有新ID的克隆)。我可以在沒有問題的情況下訪問替換的textarea,但不能訪問與之相關的CKEditor.editor對象。是否可以通過使用替換的元素(而不是它的id)來訪問這個對象?我可以從它轉換的元素中獲得一個CKEditor實例嗎?

N.B請告訴我,我可以在這裏補充,使問題更加清晰......

跟進 我想通了,我被稀化有關這個錯誤的方式。當我克隆包含CKEditor的元素時,我有一個元素的副本,但CKEDITOR對象不知道它。我最終做的只是刪除與克隆編輯器關聯的html,並再次調用CKEDITOR.replace替換克隆的textarea。我希望這是可以理解的,我沒有太多時間寫。如果事情不清楚,請留言,我會盡快澄清。

回答

1

我不是100%的問題是什麼,但是這可能有幫助,如果你有一個id爲「content」的textarea,並且你用編輯器替換它,那麼你可以從CKEDITOR訪問實例。實例爲:

CKEDITOR.instances.content  OR 
CKEDITOR.instances[content]  OR 
CKEDITOR.instances["content"] 

現在,當你改變克隆的文本區域的ID可以說「內容2」和克隆編輯器實例不在CKEDITOR.instances則需要更換克隆後的ID是更新。

CKEDITOR.replace('content2'); 

所以編輯器將有多個實例「content」和「content2」。您可以遍歷實例並驗證它們並使用您需要的實例。

for(x in CKEDITOR.instances){ 
var instance = CKEDITOR.instances[x]; 
// do something with the instance 
} 
+0

在你的例子,你的元素的ID,而不是獲得實例元素本身,這正是我試圖獲得的。 – Shawn

+0

你必須使用某種方式來獲取元素,如果你有jQuery選擇器或Ckeditor UI元素中的元素,那麼你可以從id屬性中獲取id。 –

1

如果您使用的是jQuery的適配器,您可以使用以下獲得CKEDITOR對象...

$(element).ckeditorGet(); 
相關問題