将CKEDITOR配置为不修复特定自定义标记的HTML

将CKEDITOR配置为不修复特定自定义标记的HTML,ckeditor,Ckeditor,我在模板系统中使用CKEditor,在模板系统中使用自定义标记,然后我的PHP后端将用数据替换HTML中的自定义标记 例如,在一个教程中,我可能有一套关于如何做某事的标准说明,但某些示例需要额外的说明。在这种情况下,我会将自定义标记插入html中,然后php后端会将其替换为该页面的说明 因此,在列表中,我会做如下操作: <ol> <li>Step 1</li> <li>Step 1</li> <li>Step 1<

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

例如,在一个教程中,我可能有一套关于如何做某事的标准说明,但某些示例需要额外的说明。在这种情况下,我会将自定义标记插入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配置为不对某些标记执行此操作?

    如果您想将这些标记放置在
    内部之类的位置,那么这里唯一的解决方案就是使用。在编辑过程中,匹配的数据片段将转换为HTML注释。这当然会使它们对用户不可见,但它允许将它们保留在其他元素无法定位的位置。例如,在
    内部,您只能有
  • ,因此您的自定义标记只能由注释或
  • 替换。受保护的源代码为您提供了前者,后者是一个更复杂的选项,因为您希望对这些标记的可编辑性进行一些限制

    config.protectedSource
    的示例用法:

    config.protectedSource.push( /<%[\s\S]*?%>/g ); 
    
    config.protectedSource.push(//g);
    
    我的配置中已经有了这个。我还安装了show protected插件。当您单击源按钮或保存表单内容时,会将移动到标记上方。很可能是因为您安装了受显示保护的插件。正如我所写的-你不能在
  • 元素之间显示任何东西,这个插件不会改变这一点,除非它非常智能。这就是你的数据被更改的原因。是的,显示保护插件是个问题。谢谢你的帮助。