我有一个问题,我希望 Enter (这会创建一个很大的空间,因为它会创建一个 p 标签)作为 Shift + Enter 工作。我让它工作了
force_br_newlines: true,
force_p_newlines: false,
forced_root_block: false,
但是当你使用shift + Enter时,它会使其成为与上面相同的段落,这是我不想要的。我希望每个输入都像 br 一样工作,并且也被视为它自己的段落。
可能会有失败的尝试:
forced_root_block: 'div',
setup: function(editor) {
editor.on('PostProcess', function(ed) {
ed.content = ed.content.replace(/(<p>)/gi,'<div>').replace(/(<\/p>)/gi,'<\/div>');
});
},
newline_behavior: 'linebreak',
force_br_newlines: true,
force_p_newlines: false,
forced_root_block: false,
newline_behavior: 'block',
convert_newlines_to_brs: true,
force_br_newlines: true,
force_p_newlines: false,
setup(ed: { on: (arg0: string, arg1: (event: any) => void) => void }) {
ed.on('KeyDown', (event) => {
if (event.shiftKey && event.keyCode == 13) {
event.execCommand('mceInsertContent', false, '<br><br>');
//event.dom.Event.cancel(event);
alert('shift enter key');
return;
}
if (event.keyCode == 13 && !event.shiftKey) {
event.execCommand('mceInsertContent', false, '<br>');
//event.dom.Event.cancel(event);
alert('enter key');
return;
}
});
},
当你说...
“我希望每个输入都像
<br>
一样工作,并且也被视为自己的段落”
...您正在要求两件不能同时发生的事情。 根据定义,换行符不会像段落一样创建新的块元素,因此如果插入
<br>
,您在语义上不会创建新块。
如果您要解决的核心问题是段落周围的间距对于您的需求来说太大,您最好使用CSS来减少段落周围的边距和/或填充。
极端情况下你可以这样做:
p {
margin:0;
}
...这会消除段落周围的所有边距。