47

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

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

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

有人知道解决办法吗?

4

4 回答 4

103

TinyMce 自动<p>在新行中添加“”。您可以像这样在 tinyMce 初始化中设置此选项:

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

希望它会有所帮助

丰斯基

于 2012-12-12T14:42:08.337 回答
6

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

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

我希望它有帮助

于 2016-10-28T11:32:58.177 回答
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 特定的。

于 2015-02-23T00:45:05.440 回答
0

从 tinymce.js v4.1.10 代码:

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

所以避免 <p> 的关键似乎如前所述

settings.force_p_newlines = false

settings.forced_root_block = ''
于 2017-08-18T19:14:26.857 回答