Rails 中如何使用tinymce 防止 <p> 标签环绕我的输入?

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

默认情况下,tinymce 输入作为段落标签传递到 DOM:

我想删除该元素包装器,以便tinymce 准确地传递我在文本编辑器中输入的内容。 我该怎么做?如果您提供代码,请让我知道该代码的添加位置吗? 问候!!!

ruby-on-rails forms tinymce
5个回答
3
投票

实际上我解决了我的问题。我所要做的就是更改段落标签的样式:

p {margin: 0; padding: 0;}

2
投票

您需要将

forced_root_block
指定为 false。然而,文档指出,不将根块作为
<p>
标签可能会削弱编辑器的行为。换行符将用
<br>
标签来分隔。

tinyMCE.init({
    selector: 'textarea',
    forced_root_block: false
});

请参阅文档此处


0
投票

我用 gsub 和正则表达式去掉那些讨厌的东西,如下所示:

<%= @event.desc_long.gsub(/^\<p\>/,"").gsub(/\<\/p\>$/,"") %>

第一个 .gsub 删除 TinyMCE 字符串开头的

<p>
,第二个 .gsub 删除末尾的
</p>
。 对我来说工作很好。 这适用于任何使用正则表达式的语言(gsub 适用于 Rails)。 JavaScript 示例:

var str = "{TinyMCE HTML string}"; 
str = str.replace(/^\<p\>/,"").replace(/\<\/p\>$/,"");

希望这有帮助!

编辑:

回复:放在哪里。 您只需保留 TinyMCE 放入数据库中的内容即可。 仅在显示时添加以上内容(在视图中,通过电子邮件发送任何内容)。


0
投票

如果您只是想去掉边距:

tinymce.init({
...
setup: function(ed) { 
  ed.on('init', function() { 
    var doc = this.getDoc().getElementById("tinymce");
    doc.style.margin = 0;
  });
},
});

0
投票

我刚刚将版本升级到 TinyMCE 版本 7.3.0 (2024-08-07),并且必须更改我的设置,对于forced_root_block,我必须使用空白空间,传入 false 或空字符串对我来说不起作用,但是使用空白空间确实有效。

tinymce.init({
    forced_root_block: ' ',// this stops the input from being wrapped.
});

希望为其他正在升级版本的人节省一些时间。

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