配置CKEDITOR不要修复某个自定义标记的HTML

时间:2015-04-27 17:24:18

标签: ckeditor

我在模板系统中使用CKEditor,我使用自定义标签,然后我的PHP后端将用数据替换HTML中的自定义标签。

例如,在教程中,我可能有一套关于如何做某事的标准说明,但某些示例需要额外的说明。在这种情况下,我会插入<%Extra_Instructions%>将自定义标记放入html,然后php后端将用该页面的说明替换它。

所以在列表中,我会做类似的事情:

<ol>
 <li>Step 1</li>
 <li>Step 1</li>
 <li>Step 1</li>
 <%Extra_Instructions%>
 <li>You are all done!</li>
</ol>

问题是CKeditor检测到自定义标签不正确html并自动将其移出列表。所以来源将成为:

<%Extra_Instructions%>
<ol>
 <li>Step 1</li>
 <li>Step 1</li>
 <li>Step 1</li>
 <%Extra_Instructions%>
 <li>You are all done!</li>
</ol>

有没有办法让Ckeditor不为某些标签执行此操作?

1 个答案:

答案 0 :(得分:0)

如果您想将这些标记放在<ul>内的位置,那么此处唯一的解决方案是使用config.protectedSource。匹配的数据片段将在编辑期间转换为HTML注释。这当然使它们对用户不可见,但它允许将它们保存在其他元素无法定位的位置。例如。在<ul>内,您只能<li>,因此您的自定义标记只能被评论或<li>替换。受保护的源代码为您提供前者,后者是一个更复杂的选项,因为您希望对这些代码的可编辑性做出一些限制。

config.protectedSource的使用示例:

config.protectedSource.push( /<%[\s\S]*?%>/g );