【发布时间】:2013-07-05 20:55:54
【问题描述】:
我有一个HTML代码如下
<div class="editable" ...>
<div class="code">
This is an example.
This is a new line
</div>
</div>
在 CSS 中,代码具有“word-wrap:pre”属性,这样内部 DIV 中的文本将显示两行。我使用带有 DIV 替换方法的 CKEditor 来编辑它。但是,它变成了
<div class="code">
This is an example.This is a new line
</div>
HTML 标记内的文本将变成一行,开头和结尾的空格和换行被去除。所以在 CKEditor 中,虽然我指定了 config.contentsCss,但它仍然显示一行,因为 CKEditor 已将这两行合并为一行(我在 CKEditor 的 iframe 编辑器中的 Chrome“检查元素”中检查了这一点)。所以,我看源码还是保存的HTML,两行格式没有保留,因为只有一行。
我已经用谷歌搜索并尝试了 CKEditor HTML 编写器或 addRules 来限制开始/关闭标签中的缩进格式和新行,但是,这些似乎适用于 HTML 标签,而不是文档文本。还有其他方法可以保留文本的换行符吗?
【问题讨论】:
-
您需要在 CKEditor 中格式化代码吗?
-
不,我不希望代码被格式化,以便在 CKeditor 之前/之后保留所有空格和换行符。
-
那么你将不得不处理换行符(\n)和
的 -
我不必手动处理换行符。实际上,如果 CKeditor 认为它可以去除所有开头和结尾的空格
(^[ \n\r\t]*|[ \n\r\t]*$),这意味着这些不会影响在浏览器中查看的换行符的布局。但是为什么这会影响我在问题中描述的结果,因为我有一个使用word-wrap: pre的 CSS 样式,而 CKeditor 不知道这一点。它会删除那些空白并使观看变得奇怪。我找到了解决方案,但是,没有配置选项可以控制它。一个非常小的 hack 是可以接受的。 -
@jclin 你可以通过回答你自己的问题来分享解决方案吗?
标签: javascript html google-chrome dom ckeditor