我可以从它转换的元素中获取CKEditor实例吗?

时间:2013-03-28 15:56:16

标签: ckeditor

我遇到的情况是克隆包含CKEditor实例的元素。克隆后,我更改所有ID以确保在同一页面中没有两个具有相同ID的元素。我无法访问克隆版本的CKEditor。实际上,如果我通过元素id访问它,我会得到原始的(不是带有新id的克隆)。我可以毫无问题地访问替换的textarea,但不能访问随附的CKEditor.editor对象。是否可以通过使用替换元素(而不是其id)来访问此对象?

N.B请告诉我我可以在这里添加什么来使问题更清楚......

跟进 我发现我正在以错误的方式对待这件事。当我克隆包含CKEditor的元素时,我有一个元素的副本,但是CKEDITOR对象不知道它。我最终做的只是删除与克隆编辑器关联的html并再次调用CKEDITOR.replace来替换克隆的textarea。我希望这是可以理解的,我没有太多时间写。如果事情不清楚,请发表评论,我会尽快澄清。

2 个答案:

答案 0 :(得分:2)

如果您使用的是jQuery适配器,则可以使用以下内容获取CKEDITOR对象...

$(element).ckeditorGet();

答案 1 :(得分:1)

我不是百分之百的问题,但这里有一些可能有用的东西,如果你有一个带有id“content”的textarea并用编辑器替换它,那么你可以从CKEDITOR.instances访问该实例为:

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

现在,当您将克隆文本区域的ID更改为“content2”并且克隆编辑器实例不在CKEDITOR.instances中时,您需要在更新ID后替换克隆。

CKEDITOR.replace('content2');

因此编辑器将有多个实例“content”和“content2”。您可以遍历实例并验证它们并使用您需要的实例。

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