tinymce 自动添加 p 标签?

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

我正在使用tinymce并将其保存到数据库中。

当我使用tinymce编辑保存的内容并再次保存时,它会在开头插入一个p标签。

一遍又一遍地编辑内容会在内容的开头留下很大的空白。

有人知道解决方法吗?

tinymce
6个回答
106
投票

TinyMce 自动在新行中添加“

<p>
”。 您可以在tinyMce初始化中设置此选项,如下所示:

  tinyMCE.init({
      mode : "textareas",
      theme : "advanced",
      force_br_newlines : false,
      force_p_newlines : false,
      forced_root_block : '',
  });

希望对你有帮助

丰斯基


6
投票

对我来说,它通过使“force_br_newlines:true”而不是 false 起作用。

 tinyMCE.init({
      mode : "textareas",
      theme : "advanced",
      force_br_newlines : true,
      force_p_newlines : false,
      forced_root_block : ''
  });

希望对你有帮助


4
投票

我确信@Fonski 的答案是正确的,但我想我会为其他对代码放置位置感到困惑的人更新此内容。我将以下内容放入我的

_config.php
文件中以使其正常工作:

$defaultEditorConfig = HtmlEditorConfig::get('cms');
$defaultEditorConfig->setOptions(
    array(
        'mode'              => 'textareas',
        'theme'             => 'advanced',
        'force_br_newlines' => false,
        'force_p_newlines'  => false,
        'forced_root_block' => ''
    )
);

注意:如果您只想删除自动包装图像标签等的 p 标签,则只需设置

'forced_root_block' => ''
选项即可。

编辑:此建议适用于那些使用 SilverStripe 的人,我发布此内容时认为这些问题是 SilverStripe 特定的。


1
投票

我最近在使用TinyMCE v7并遇到了这个问题。然而,force_*_new_lines 不再起作用。阅读了一些文档后,我找到了解决方案here。虽然问题已经解决,但我想为其他搜索的人添加这个。

TinyMCE v6.1 及更高版本使用以下内容来实现每次输入时的 shift_enter 行为

newline_behavior: 'linebreak'

0
投票

来自tinymce.js v4.1.10代码:

newBlockName = (settings.force_p_newlines ? 'p' : '') || settings.forced_root_block;

所以避免的关键

似乎如之前所说

settings.force_p_newlines = false

settings.forced_root_block = ''

0
投票

使用 @tinymce/tinymce-react 和 ^4.3.2 版本 使用forced_root_block中的任何字符串,但空字符串对我不起作用

初始化:{{ 高度:600, forced_root_block: "任何东西", }}

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