如何防止 <p> 标签在 Rails 中使用 tinymce 环绕我的输入?
How to prevent the <p> tag from wrapping around my input with tinymce in Rails?
默认情况下,tinymce 输入作为段落标记传递给 DOM:
我想删除那个元素包装器,以便 tinymce 准确传递我在文本编辑器中输入的内容。
我怎么做 ?如果您提供代码,请告诉我该代码的添加位置好吗?
问候 !!!
其实我解决了我的问题。我所要做的就是更改段落标记的样式:
p {margin: 0; padding: 0;}
您需要将 forced_root_block
指定为 false。但是,文档指出,不将根块作为 <p>
标记会削弱编辑器的行为。换行符将改为用 <br>
标记隔开。
tinyMCE.init({
selector: 'textarea',
forced_root_block: false
});
查看文档here
我像这样用 gsub 和正则表达式去除那些讨厌的东西:
<%= @event.desc_long.gsub(/^\<p\>/,"").gsub(/\<\/p\>$/,"") %>
第一个 .gsub 删除 TinyMCE 字符串开头的 <p>
,第二个删除结尾的 </p>
。对我来说很棒。这适用于任何使用正则表达式的语言(gsub 适用于 rails)。 JavaScript 示例:
var str = "{TinyMCE HTML string}";
str = str.replace(/^\<p\>/,"").replace(/\<\/p\>$/,"");
希望对您有所帮助!
编辑:
回复:放在哪里。您将 TinyMCE 放在数据库中的内容单独保留。仅在显示时添加上面的内容(在视图中,通过电子邮件发送)。
如果您只想去掉边距:
tinymce.init({
...
setup: function(ed) {
ed.on('init', function() {
var doc = this.getDoc().getElementById("tinymce");
doc.style.margin = 0;
});
},
});
默认情况下,tinymce 输入作为段落标记传递给 DOM:
我想删除那个元素包装器,以便 tinymce 准确传递我在文本编辑器中输入的内容。 我怎么做 ?如果您提供代码,请告诉我该代码的添加位置好吗? 问候 !!!
其实我解决了我的问题。我所要做的就是更改段落标记的样式:
p {margin: 0; padding: 0;}
您需要将 forced_root_block
指定为 false。但是,文档指出,不将根块作为 <p>
标记会削弱编辑器的行为。换行符将改为用 <br>
标记隔开。
tinyMCE.init({
selector: 'textarea',
forced_root_block: false
});
查看文档here
我像这样用 gsub 和正则表达式去除那些讨厌的东西:
<%= @event.desc_long.gsub(/^\<p\>/,"").gsub(/\<\/p\>$/,"") %>
第一个 .gsub 删除 TinyMCE 字符串开头的 <p>
,第二个删除结尾的 </p>
。对我来说很棒。这适用于任何使用正则表达式的语言(gsub 适用于 rails)。 JavaScript 示例:
var str = "{TinyMCE HTML string}";
str = str.replace(/^\<p\>/,"").replace(/\<\/p\>$/,"");
希望对您有所帮助!
编辑:
回复:放在哪里。您将 TinyMCE 放在数据库中的内容单独保留。仅在显示时添加上面的内容(在视图中,通过电子邮件发送)。
如果您只想去掉边距:
tinymce.init({
...
setup: function(ed) {
ed.on('init', function() {
var doc = this.getDoc().getElementById("tinymce");
doc.style.margin = 0;
});
},
});