在TinyMCE中插入换行符而不是<p>

Kut*_*PHP 14 tinymce

我按如下方式初始化了TinyMCE.我想在用户按下输入而不是段落时强制换行.我正在尝试跟随,但没有工作.我正在使用TinyMCE版本3_3_8.

tinyMCE.init({
        mode: "exact",
        theme: "advanced",
        elements: "textAreaId",
        cleanup: false,
        theme_advanced_toolbar_location: "",
        theme_advanced_buttons1: "",
        theme_advanced_buttons2: "",
        theme_advanced_buttons3: "",
        height: 200,
        width: 300,
    forced_root_block : false,
    force_br_newlines : true,
    force_p_newlines : false,
        oninit: InitPosition
    }); //init ends
Run Code Online (Sandbox Code Playgroud)

我试图定义forced_root_block : "",但它仍然无法正常工作.

我究竟做错了什么?

Tha*_*ung 19

只需添加 forced_root_block : false

或者,如果你想有一个包装:forced_root_block : 'div',

奇迹般有效!


Tha*_*ama 14

而是尝试:

force_p_newlines : false,
force_br_newlines : true,
convert_newlines_to_brs : false,
remove_linebreaks : true,    
Run Code Online (Sandbox Code Playgroud)


Noo*_*een 9

对我有用的是:

tinymce.init({
    ...
    force_br_newlines : true,
    force_p_newlines : false,
    forced_root_block : ''
});
Run Code Online (Sandbox Code Playgroud)

每个换行符都使用这些设置生成br标记.

消息来源:http://www.tinymce.com/wiki.php/Configuration3x:force_br_newlines


lbo*_*oix 7

我遇到了与TinyMCE 4相同的情况.所有我的"Enter"(键盘)导致了一个新的<p>&nbsp</p>注入.

我不想使用,forced_root_block : false 所以我在tinymce.init函数中找到了一些东西(每个空段将直接清理):

setup : function(editor) {

            editor.on('PostProcess', function(ed) {
                // we are cleaning empty paragraphs
                ed.content = ed.content.replace(/(<p>&nbsp;<\/p>)/gi,'<br />');
            });

        }
Run Code Online (Sandbox Code Playgroud)

https://www.tinymce.com/docs/configure/integration-and-setup/#setup https://www.tinymce.com/docs/api/class/tinymce.editor/#postprocess

  • 这很棒!顺便说一句,在当前版本中我想你应该使用 onEditorChange 事件。除了粘贴插件之外,似乎没有通用的后期处理。 (2认同)