如何在CKEditor所见即所得编辑器中保持换行符
How to keep line breaks in CKEditor WYSIWYG editor
我有一个HTML代码,如下
<div class="editable" ...>
<div class="code">
This is an example.
This is a new line
</div>
</div>
在CSS中,代码具有"word wrappe:pre"属性,这样内部DIV中的文本将显示两行。我使用CKEditor和DIV替换方法来编辑它。然而,它变成了
<div class="code">
This is an example.This is a new line
</div>
HTML标记中的文本将变为一行长,开始和结束空格以及新行都将被剥离。因此,在CKEditor中,尽管我已经指定了config.contentsCss,但它仍然显示了一行,因为CKEditor已经将这两行合并为一行(我在CKEditor的iframe编辑器中的Chrome"Inspect Element"中检查了这一点)。因此,我看到的源代码或保存的HTML,两行格式没有保留,因为它们只是一行。
我已经在谷歌上搜索并尝试了CKEditor HTML编写器或addRules来限制缩进格式和开始/结束标记中的新行,然而,这些似乎适用于HTML标记,而不是文档文本。有没有其他方法可以保留文本的换行符?
我找到了。
// preserve newlines in source
config.protectedSource.push( /'n/g );
http://docs.ckeditor.com/#/api/CKEDITOR.config-cfg-protectedSource
使用<pre>
HTML标记。像这样:
<div class="editable" ...>
<div class="code"><pre>
This is an example in a "pre".
This is a new line
</pre></div>
</div>
<div class="editable" ...>
<div class="code">
This is an example NOT in a "pre".
Therefore this is NOT a new line
</div>
</div>
或者,您可以在两行之间放置一个<br/>
标记。这是击球进入的ssame。
$(document).on('paste', 'textarea', function (e) {
$(e.target).keyup(function (e) {
var inputText = $(e.target).val();
$(e.target).val(inputText.replace(/'n/g, '<br />'))
.unbind('keyup');
});
});
在我的特殊情况下,它是一个额外的标签univis
,我需要给出类似的语义(即,不使用缩进和换行符),我们最终做的是:
CKEDITOR.dtd.$block.univis=1;
CKEDITOR.dtd.$cdata.univis=1;
CKEDITOR.dtd.univis=CKEDITOR.dtd.script;
但看起来它可能是可扩展的,也可能不是可扩展到类的。
我运行了一些Craft站点,我不想到处粘贴配置文件。对于其他仍有问题的人:只需使用密文。安装并更换字段类型。每件事都纠正一次,你就完了。
您也可以简单地使用javascript替换函数
.replace( /'n/g, '</p><p>' )
- 如何在映射数组中添加换行符
- JQuery:向多个匹配结果添加换行符的最简单方法
- 在文本区域中使用jQuery.text()保持换行符
- javascript替换换行符和特殊字符
- 换行符拆分返回“”;未定义”;
- 如何使用web浏览器在NoSQL数据中呈现换行符
- 换行符插入jquery选择器
- jquery使用val()复制值似乎可以删除换行符
- 文本区域-获取每一行,找到换行符
- 处理字段中带有换行符的csv文件-node.js
- 使用jquery将单个换行符替换为span元素
- javascript/jQuery:在title中添加换行符——在IE9中有效,但在IE8中无效
- 咖啡脚本意外换行符
- 在文本区域中保留换行符.value
- 如何在内容可编辑或其他地方找到通过自动换行创建的换行符
- 是否有任何保留换行符的 JavaScript 缩小器
- 使用 javascript 编辑 HTML:插入 而不是
作为换行符 - 如何在CKEditor所见即所得编辑器中保持换行符
- 每当我保存文档编辑器添加额外的空格、段落和换行符时,换行符和段落就会翻倍
- 换行符的.replacement();不能使用可编辑内容的项目