我能否从被CKEditor转换的元素中获取CKEditor实例?

3
我有一个情况,我正在克隆一个包含CKEditor实例的元素。 克隆后,我更改所有ID,以确保在同一页中没有两个具有相同ID的元素。 我无法访问CKEditor的克隆版本。 如果我通过元素ID访问它,我会得到原始版本(而不是具有新ID的克隆版本)。 我可以轻松访问替换的文本区域,但无法访问与其配套的CKEditor.editor对象。 是否可能使用替换元素(而不是其ID)访问此对象?请告诉我如何使问题更加清晰...
跟进: 我发现我所想的方式是错误的。 当我克隆包含CKEditor的元素时,我拥有元素的副本,但CKEDITOR对象不知道它。 我最终做的是删除与克隆编辑器关联的HTML,并再次调用CKEDITOR.replace来替换克隆的文本区域。 希望这是可以理解的,我没有太多时间写。 如果有不清楚的地方,请留言,我会尽快澄清。
2个回答

4
我不完全明白问题是什么,但这里有一些可能会有帮助的内容。如果您有一个ID为“content”的文本区域,并用编辑器替换它,则可以从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
}

在你的示例中,你获取了具有元素ID的实例,而不是我试图获取的元素本身。 - Shawn
你必须使用某种方法获取元素,如果你在jQuery选择器或Ckeditor UI元素中有该元素,则可以从id属性中获取id。 - Wasif.Butt
CKEDITOR.instances[content] looks broken unless you have a variable content with the value 'content' - ThiefMaster

2
如果您使用jQuery适配器,可以使用以下方式获取CKEDITOR对象...
$(element).ckeditorGet();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接