TinyMCE编辑器中的换行符在预览时显示额外的行,而不是在代码中
我将BBCode插件与TinyMCE一起使用,看到预览和HTML代码之间的换行符并不相同 编辑器窗口中有以下行:TinyMCE编辑器中的换行符在预览时显示额外的行,而不是在代码中,tinymce,bbcode,rte,Tinymce,Bbcode,Rte,我将BBCode插件与TinyMCE一起使用,看到预览和HTML代码之间的换行符并不相同 编辑器窗口中有以下行: This is line one This is line three 第二行是空的。当我在HTML中查看此内容时,我会看到以下内容 This is line one This is line three 没有多余的空行 tinyMCE.init({ mode : "textareas", theme : "advanced", plugins : "b
This is line one
This is line three
第二行是空的。当我在HTML中查看此内容时,我会看到以下内容
This is line one
This is line three
没有多余的空行
tinyMCE.init({
mode : "textareas",
theme : "advanced",
plugins : "bbcode",
entity_encoding : "raw",
remove_linebreaks : false,
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : ''
});
我缺少什么?您可能需要来输出HTML代码: nl2br-插入HTML换行符 在字符串中的所有换行符之前 或者,您可以将
force\u p\u newlines
选项设置为true
我已经测试过了,你是对的,但是这种行为只发生在BBCode插件上。我相信通过使用
tinyMCE.init
中的preformatted:true
选项,您应该能够解决您的问题。我已经在Firefox 3.5.7和Google Chrome 4.0.223.11上对其进行了测试
html:
可以使用如下简单的CSS(“bbcode.CSS”)删除段落之间的空格:
p {margin:0; padding: 0;}
从TinyMCE配置中,您可以选择换行符的beavhior TinyMCE将强制BR元素换行,而不是插入段落
尝试在配置对象中添加
valid_elements: 'br' //and any others that you want
我也有同样的问题。这是bbcode插件的解决方案:
forced_root_block : false,
remove_redundant_brs : false,
valid_elements: "br",
verify_html : false,
仅供参考——尽管围绕它的政治闹剧是使用
标记而不使用
标记的“正确做法”,但对我来说,问题是我在电子邮件中发送内容——在电子邮件中,我无法控制
标记上的CSS(除非我想在每个标记中添加内联CSS)。因此,
标签为终端用户添加了看起来像是双行距的内容。我在我的网站上添加了CSS来删除间距,内容看起来很好
因此,在使用了
标记之后,然后使用
“正确的方法”,我将再次使用
标记…这是另一种方法。只需更改Enter键和Shift+Enter键的行为即可
ed.onKeyPress.add(
function (ed, evt) {
if(evt.shiftKey && evt.keyCode == 13) {
tinyMCE.execCommand('mceInsertContent', false, '<br><br>');
tinymce.dom.Event.cancel(evt);
//alert('shift enter key');
return;
}
if(evt.keyCode == 13 && !evt.shiftKey) {
tinyMCE.execCommand('mceInsertContent', false, '<br>');
tinymce.dom.Event.cancel(evt);
//alert('enter key');
return;
}
});
ed.onKeyPress.add(
功能(ed、evt){
if(evt.shiftKey&&evt.keyCode==13){
tinyMCE.execCommand('mceInsertContent',false,
');
tinymce.dom.Event.cancel(evt);
//警报(“shift-enter键”);
返回;
}
if(evt.keyCode==13&&!evt.shiftKey){
tinyMCE.execCommand('mceInsertContent',false,
');
tinymce.dom.Event.cancel(evt);
//警报(“输入键”);
返回;
}
});
对于TinyMCE 4,我也有同样的问题,但对于我来说,使用此配置
mode: 'exact',
inline: true,
add_unload_trigger: false,
schema:"html5",
invalid_elements: "span",
extended_valid_elements : "span[!class]",
paste_remove_styles: true,
forced_root_block : false,
verify_html : false,
cleanup : true
不,这根本不是我所描述的问题。首先,内置BBCode预览器也会出现这种情况。而且我确实有一个断线。但我想要两个,正如我在编辑器中键入的:。强制新行为true没有效果。我将提供一个例子。请参阅原始帖子中的编辑。预格式化属性也没有影响:(我开始认为这可能是一个bug,甚至可能是出于设计!@Kordonme:是的,用PHP无法可靠地撤销这个效果。很抱歉,我想不出其他任何东西,我读过TinyMCE wiki和一些论坛帖子,但我没有想到解决方案……也许你应该试着在TinyMCE论坛上问这个问题?是的,我就是这么想的一开始不是。但是支持论坛有一个帖子,第一行是:“我们不可能为每个人免费提供支持,这个论坛是关闭发布的。”@Kordonme:这很悲哀。他们应该改为:“我们不可能为任何人免费提供支持,这个论坛是关闭发布的。”您是否考虑过切换到CKEditor()?这是我想要的正确输出,而不是预览。请查看示例链接并尝试我在帖子中所写的内容:-)好的,我们开始:a)打开链接“”,在编辑器中键入内容,按“提交”,得到“404页面未找到”b)打开链接“”,在编辑器中键入内容,单击“测试”-链接我的解决方案是针对b):警报窗口向我显示空行。嗨,安德拉斯。只是为了澄清;我没有否决你:-)第二,你提供的解决方案不起作用。我有一个断线。但是我在寻找一个空行。@andreas:我测试了它,它是有效的,但我认为OP是在询问如何在提交表单时保留空行。TinyMCE似乎在进行某种后处理。@Alix Axel:让我们将主题更改为“高级”->单击“HTML”--按钮->相同结果(空行)嗨!你差点让我在那里呆上一秒钟:去掉多余的东西。但它不起作用:(它实际上在做其他事情:原始HTML输出是什么样子的,如果第2行有空格,你会得到相同的结果吗?不,如果第2行有空格,我会得到我想要的结果:。但我不想要空格-只是一个空行!;-)我怀疑tinymce正在输出
,但是如果两个HTML标记之间有空格,一些web浏览器将只显示两个连续的换行符。因此我的测试…我错了。问题似乎在于,当从文本区域提取文本时(通过POST或getContent()),任何双换行符都会被web浏览器透明地转换为单换行符。我唯一能想到的解决办法就是破解TinyMCE,让它总是在任何新行之前放置一个空格。@Kordonme:你已经试过我的测试页了吗?
ed.onKeyPress.add(
function (ed, evt) {
if(evt.shiftKey && evt.keyCode == 13) {
tinyMCE.execCommand('mceInsertContent', false, '<br><br>');
tinymce.dom.Event.cancel(evt);
//alert('shift enter key');
return;
}
if(evt.keyCode == 13 && !evt.shiftKey) {
tinyMCE.execCommand('mceInsertContent', false, '<br>');
tinymce.dom.Event.cancel(evt);
//alert('enter key');
return;
}
});
mode: 'exact',
inline: true,
add_unload_trigger: false,
schema:"html5",
invalid_elements: "span",
extended_valid_elements : "span[!class]",
paste_remove_styles: true,
forced_root_block : false,
verify_html : false,
cleanup : true