我在模板系统中使用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不为某些标签执行此操作?
答案 0 :(得分:0)
如果您想将这些标记放在<ul>
内的位置,那么此处唯一的解决方案是使用config.protectedSource
。匹配的数据片段将在编辑期间转换为HTML注释。这当然使它们对用户不可见,但它允许将它们保存在其他元素无法定位的位置。例如。在<ul>
内,您只能<li>
,因此您的自定义标记只能被评论或<li>
替换。受保护的源代码为您提供前者,后者是一个更复杂的选项,因为您希望对这些代码的可编辑性做出一些限制。
config.protectedSource
的使用示例:
config.protectedSource.push( /<%[\s\S]*?%>/g );