如何初始化 CKEditor textarea 换行符,就像 html textarea 换行符一样

Posted

技术标签:

【中文标题】如何初始化 CKEditor textarea 换行符,就像 html textarea 换行符一样【英文标题】:How to initialize CKEditor textarea line breaks as like html textarea line breaks 【发布时间】:2016-01-11 07:22:35 【问题描述】:
    html textareas 可以识别换行符(输入按钮),我可以将元素的文本值保存到数据库中。然后我可以获取这些数据,将其设置在任何文本区域上,我仍然有换行符(直到这里没问题)。 CKEditor textarea 在换行符后放置<p><br />。当我删除这些标签时,CKEditor 无法识别有换行符。

目的:我正在使用带有 CKEditor 的单词计数器插件,所以我需要像使用 textarea 一样使用 CKEditor。我需要纯文本值。

到目前为止我尝试过这些:

CKEDITOR.instances.editor1.document.getBody().getText()

是的,我可以正确获取文本值,我将这个值放在数据库中,但是当我重新加载页面时,换行符消失了。因为 ckeditor 仅适用于 html 标签?

config.autoParagraph = false;

这只是删除了内容开头的<p> 标签。 我需要纯文本+换行符就是这样。有什么建议 ?还是我应该写下我自己的课程?

【问题讨论】:

如果你只想要纯文本,为什么还要使用 CKEditor? @AlfonsoML 因为我稍后将不得不将其升级到 html 以及字符计数器/限制。 在您使用 HTML 之前,我会继续使用普通的文本区域并使用更简单的脚本来提供字符计数器(现代浏览器本身可以处理字符限制) 【参考方案1】:
Array.prototype.map
            .call(CKEDITOR.instances.editor1.document.getBody().$.childNodes,
                 function(item)
                  return item.innerText;
                  )
            .join("\n");

<p> 块转换为由\n 分隔的字符串只是一个疯狂的答案

【讨论】:

会检查并反馈。谢谢。

以上是关于如何初始化 CKEditor textarea 换行符,就像 html textarea 换行符一样的主要内容,如果未能解决你的问题,请参考以下文章

如何验证ckeditor5 textarea字段所需?

CKEditor不在laravel请求中工作

使用 javascript 获取 ckeditor textarea 的 textarea 值

将ckeditor应用于textarea

仅在CKEditor初始化后运行JavaScript函数

将普通textarea的样式修改为ckeditor的样式方法有三种