Tinymce 将 p 标签更改为 div

问题描述 投票:0回答:1

我有一个问题,我希望 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;
      }
    });
  },
html tinymce paragraph
1个回答
1
投票

当你说...

“我希望每个输入都像

<br>
一样工作,并且也被视为自己的段落”

...您正在要求两件不能同时发生的事情。 根据定义,换行符不会像段落一样创建新的块元素,因此如果插入

<br>
,您在语义上不会创建新块。

如果您要解决的核心问题是段落周围的间距对于您的需求来说太大,您最好使用CSS来减少段落周围的边距和/或填充。

极端情况下你可以这样做:

p {
  margin:0;
}

...这会消除段落周围的所有边距。

© www.soinside.com 2019 - 2024. All rights reserved.