CKEditor删除带有非标准标记的图像

CKEditor删除带有非标准标记的图像,ckeditor,Ckeditor,在CKEditor中,我有xsl模板(这就是为什么我在img中有xsl标记)。问题是,当我删除图像时,img中的标签不会被删除 <span contenteditable="false"> <span contenteditable="true"> <img alt=" legenda" contenteditable="true" height="200px" id="legendImg" src="/rp/resources/css/images/tpl/leg

在CKEditor中,我有xsl模板(这就是为什么我在img中有xsl标记)。问题是,当我删除图像时,img中的标签不会被删除

<span contenteditable="false">
<span contenteditable="true">
<img alt=" legenda" contenteditable="true" height="200px" id="legendImg" src="/rp/resources/css/images/tpl/legenda.png" width="400px">
<xsl:attribute contenteditable="false" name="src"><xsl:value-of contenteditable="false" select="legend"></xsl:value-of></xsl:attribute>
</img>
</span>
</span> 

在编辑器中单击图像并删除后,我得到

<p><span contenteditable="false">
<span contenteditable="true">
<xsl:attribute contenteditable="false" name="src">
<xsl:value-of contenteditable="false" select="legend">
</xsl:value-of>
</xsl:attribute></span></span></p>


我需要一些建议,什么是解决这个问题的最佳方法。也许有一个简单的方法来修复它,或者我应该听一些删除事件

首先,您不能在所见即所得编辑器(如CKEditor)中编辑无效的HTML。它使用本机
contenteditable
作为其编辑功能的基础,因此,例如,删除由浏览器处理(实际上,由于Webkit的严重缺陷,这在将来可能会发生变化)

尽管如此,退格处理甚至没有问题,因为当CKEditor解析和修复加载的内容时,XSL标记会从图像内部移除。为了避免这种情况,您可以尝试修改CKEditor,但仍然很难说浏览器是否能够正确处理这种情况,我很确定其中一些浏览器不会


所以你需要记住,在WYSIWYG编辑器中,你实际上是在编辑一个真实的网页,所以你需要加载一个有效的HTML内容。您可以使用的无效部分进行保护,但由于DTD将图像配置为空标记,因此它可能不接受其中的受保护源。

我已经配置了DTD,以便在ckeditor解析html时不会删除xsl标记。它工作得很好。问题是当我尝试手动删除图像时,浏览器无法删除这些元素。实现自己的退格处理将非常复杂,因此我建议您使用
protectedSource