CKEditor 中的输入模式正在改变

Enter mode is getting changed in CKEditor

CKEditor中我想区分粘贴的内容和用户添加的内容。因此,在 ckeditor 的 paste 事件中,我将复制内容的 p 标记更改为 div,以便所有新段落都由复制代码的 div 标记表示。下面是代码。

editor.on('paste', function(evt) {
     evt.data.dataValue = data.replace(/(<p)/igm, '<div').replace(/<\/p>/igm, '</div>');
});

这很好用,但是在我按下回车键并尝试添加任何新内容时执行此操作后 ckeditor 正在添加一个新的 div 标签来包装内容,而我的声明中有此声明配置

config.enterMode = CKEDITOR.ENTER_P;
config.shiftEnterMode = CKEDITOR.ENTER_P;

我试图在粘贴事件后更改输入模式,但没有帮助。

editor.on('afterPaste', function(evt) {
    editor.setActiveEnterMode(null);
});

有什么建议吗?

  1. 您不应将 <div> 与段落混用。编辑器中的内容应该是干净的,如果不一致,就会变得混乱。这可能会在未来引起更多问题。
  2. 尝试 config.forceEnterMode 选项。默认情况下,CKEditor 使用您当前所在的块(以保持一致)。使用此选项,您将强制它使用输入模式中的块。