如何防止CKEditor更改标记顺序

时间:2016-10-26 15:46:41

标签: ckeditor

CKEditor转换以下代码:

<h3>H3  
<ul>
    <li>el 1</li>
    <li>el 2</li>
</ul></h3> 

    <h3>H3  </h3> 
<ul>
    <li>el 1</li>
    <li>el 2</li>
</ul>

有没有办法防止这种行为?

1 个答案:

答案 0 :(得分:1)

  

TL; DR;的没有

CKEditor是一个HTML4 / xHTML编辑器,基于DTD,它提供了一套完整的规则,规定哪些标签可用,以及它们在DOM中的显示位置和方式。

如果您要检查DTD,则可以看到H3heading标记(block),其中只能包含内嵌标记。

<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
....
<!ENTITY % block
"p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">
....
<!ELEMENT h3 %Inline;>
<!ATTLIST h3
    %attrs;
    %TextAlign;
>

ul标记也是block标记,因此无法显示在h3标记内:

<!ENTITY % lists "ul | ol | dl | menu | dir">
....
<!ENTITY % block
"p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">