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