0

TinyMCE 的默认行为是,如果我在 a 的末尾点击 return heading,它会创建一个新的p,但如果我在 a 的末尾点击 return div,它会创建另一个div

headings并且divs都是块元素,并且似乎在 tinyMCE 默认设置中具有完全相同的设置,所以我不明白为什么会发生这种情况,而且我找不到让它表现不同的方法。我需要divh1.

代码笔: https ://codepen.io/jacoping/pen/QWjQNxZ

有没有人知道为什么 div 会以这种方式表现?

4

2 回答 2

0

当您ENTER在标题后按下时,文字处理器使用(以及人们期望)的行为是您“离开”标题并返回到正常块。在文字处理器中,这是一个常规段落 ( <p></p>)。

TinyMCE 模仿这种行为,因此当您按下回车键离开标题(或列表或表格等)时,它会创建一个“默认根块”。

一个 div 是另一种类型的默认根块 - 只是不是人们选择经常使用。<p>如果您在 a或TinyMCE的末尾按 Enter 键,<div>只会为您提供另一个相同的根块元素。

如果您想在最后按回车键时恢复到段落,<div>您可以使用styleselect下拉菜单通过从列表中选择不同的块来执行此操作。在您的示例中,您有

style_formats: [
  { title: 'H1', block: 'h1' },
  { title: 'DIV', block: 'div' },
]  

...它会覆盖列表中的正常选项,并消除您必须切换到另一个块选项(如段落)的任何机会。如果您注释掉配置的那部分,您的选择列表将包括各种块选项,以便您可以切换回段落。

于 2020-05-06T21:05:28.807 回答
0

tinyMCE.init中,添加forced_root_block : 'p'。当您按下回车键时,这将始终插入p元素。

至于发生这种情况的原因:大多数用户更有可能在 ap之后插入 a h1,并且更有可能div在另一个 之后插入 a div。该程序很“聪明”,并插入了它认为您接下来最有可能使用的元素。

于 2020-05-06T12:53:01.613 回答