的效果contenteditable
因浏览器而异,但是当列表位于可编辑区域内而不是声明为可编辑的元素时,问题中描述的行为很常见。原因似乎是由于封闭元素是可编辑的,因此实施者认为应该有一种方法可以退出列表,例如在其后添加内容。
如果您更改单个 contenteditable 块,例如
<div contenteditable>
some stuff
<ol><li>test</li></ol>
some other stuff
</div>
到三个这样的街区,
<div contenteditable>
some stuff
</div>
<ol contenteditable><li>test</li></ol>
<div contenteditable>
some other stuff
</div>
然后行为发生变化:在列表中按两次 Enter 只会在那里添加一个空项目。
但是有一个问题<ol contenteditable>
:它似乎让 IE 9 省略了列表编号(或ul
列表项目符号),没有明显的方法让它放在那里。(编辑:这只发生在 Quirks 模式下。但是这个错误可能存在于早期的 IE 版本中以不同的模式。我建议contenteditable
在包装元素上使用,而不是ol
直接使用列表元素。)