TinyMCE 正在添加新行(“ ") 无论 apply_source_formatting

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

TinyMCE 正在向我的文本添加

\n
以及段落标签。无论
apply_source_formatting
设置值如何。

即。

原文:

<blockquote><div class="cite">Person said:</div><div class="message"><p>ffgfgf</p></div></blockquote>

TinyMCE 将其重新格式化为:

<blockquote>\n<div class=\"cite\">Person said:</div>\n<div class=\"message\">\n<p>ffgfgf</p>\n</div>\n</blockquote>\n<p id=\"mce_1\">&nbsp;</p>

如何让 TimyMCE 停止添加这样的新行字符?当文本提交时,它真的会扰乱另一端的格式。

javascript tinymce
1个回答
19
投票

研究TinyMce的源代码我发现,在

Writer.js
(现在是
Writer.ts
)类中,插入
\n
之前检查的设置称为
indent

 /**
 * Writes the a end element such as </p>.
 *
 * @method end
 * @param {String} name Name of the element.
 */
end: function(name) {
    var value;

    html.push('</', name, '>');

    if (indent && indentAfter[name] && html.length > 0) {
        value = html[html.length - 1];

        if (value.length > 0 && value !== '\n') {
            html.push('\n');
        }
    }
},

因此将

indent: false
添加到设置对象似乎可以修复它。

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  indent: false,
});

来自文档

此选项默认启用,添加换行符 — U+000A,

\n
— 当 HTML 为关闭和打开块元素之间 使用
getContent()
以及在 TinyMCE 中渲染 HTML 时输出 预览对话框。

indent
设置为
false
即可从 TinyMCE 获取 HTML 输出,而无需 添加了任何换行符。

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