如何阻止CKEditor用<br/>替换空标签

时间:2015-04-04 17:22:25

标签: javascript ckeditor

有没有办法防止CKEditor在空标签中插入br并停止删除包装元素。

例如:

当我在编辑器中添加内容时,默认情况下会出现一对“p”。

<div>
   <p>content</p>
</div>

但是当我删除'内容'时,它会被替换,而dom看起来像这样:

<p>
  br 
  ""
</p>

如何禁用此默认行为?在我的情况下,我希望:

<div>
  <p>
   <br>
  <p/>
</div>

1 个答案:

答案 0 :(得分:0)

退格/删除(以及许多其他行为)由浏览器实现,并且可能根据引擎的不同而有所不同。 CKEditor会覆盖其中一些(通常是最破碎的),但我认为它不会处理这种情况。

无论如何,解决方案是以自定义方式处理退格,但是由于案例数量的原因,最简单的方法是重新实现退格行为。因此,我会尝试一些解决方法 - 例如在退格后修复DOM。它会是这样的:

  1. 收听editor#key事件并检查选择和DOM的位置。请记住它是否与您要修复的情况相符。
  2. 等待几毫秒,或直到#keyup事件并按照您的意愿修复DOM和选择。
  3. 另外,如果未执行的侦听器出现任何问题,请阅读Listening to DOM events in CKEditor