TinyMCE <p> 元素在保存时失去了它们的样式
TinyMCE <p> elements lose their style on save
我有一个使用 TinyMCE 作为表单一部分的表单。在其配置中,我目前正在对 <p>
元素应用边距样式:
tinymce.init({
selector : 'textarea',
//some other attributes
content_style: "p {margin: 0}",
});
只要在 TinyMCE window 本身中显示,它就可以正常工作,但是当我将文本保存到数据库中时,<p>
标签内不存在边距样式。
由此产生的问题是,当我在 "other" 页上显示文本时,我没有保留所需的边距样式。
我的问题:有没有办法保留为 TinyMCE 配置的已应用样式标签?
我尝试了以下属性,none 似乎有效:
extended_valid_elements : "p[style]" //didn't work
inline_styles : true //didn't work
valid_elements: "#p[style]" //didn't work
如有任何帮助,我们将不胜感激!我相信答案就在我眼前!
当您在 TinyMCE 中编辑时,content_style
所做的只是将 CSS 添加到 HTML 文档的头部。它不会向您创建的实际 HTML 添加任何内联 CSS。
如果您通过 content_style
将任何 CSS 传递给 TinyMCE,您应该在呈现内容时提供相同的 CSS,以便生成的可视化效果相同。
编辑(根据您的评论):
您可以使用 TinyMCE API 以编程方式向给定元素添加 class。例如:
tinyMCE.activeEditor.dom.addClass(tinyMCE.activeEditor.dom.select('p'), 'myclass');
...与我最初的评论一样,这将要求 myclass
class 存在于呈现内容时页面中的 CSS 中。
无论哪种方式,您仍然需要在呈现的页面中使用一些 CSS 来应用您想要的样式。
我有一个使用 TinyMCE 作为表单一部分的表单。在其配置中,我目前正在对 <p>
元素应用边距样式:
tinymce.init({
selector : 'textarea',
//some other attributes
content_style: "p {margin: 0}",
});
只要在 TinyMCE window 本身中显示,它就可以正常工作,但是当我将文本保存到数据库中时,<p>
标签内不存在边距样式。
由此产生的问题是,当我在 "other" 页上显示文本时,我没有保留所需的边距样式。
我的问题:有没有办法保留为 TinyMCE 配置的已应用样式标签?
我尝试了以下属性,none 似乎有效:
extended_valid_elements : "p[style]" //didn't work
inline_styles : true //didn't work
valid_elements: "#p[style]" //didn't work
如有任何帮助,我们将不胜感激!我相信答案就在我眼前!
当您在 TinyMCE 中编辑时,content_style
所做的只是将 CSS 添加到 HTML 文档的头部。它不会向您创建的实际 HTML 添加任何内联 CSS。
如果您通过 content_style
将任何 CSS 传递给 TinyMCE,您应该在呈现内容时提供相同的 CSS,以便生成的可视化效果相同。
编辑(根据您的评论):
您可以使用 TinyMCE API 以编程方式向给定元素添加 class。例如:
tinyMCE.activeEditor.dom.addClass(tinyMCE.activeEditor.dom.select('p'), 'myclass');
...与我最初的评论一样,这将要求 myclass
class 存在于呈现内容时页面中的 CSS 中。
无论哪种方式,您仍然需要在呈现的页面中使用一些 CSS 来应用您想要的样式。