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 来应用您想要的样式。