如何在 CKEditor 中限制每行字符数?

问题描述

我想限制 CKEditor(确切地说是 django-ckeditor)中每行的字符数,并让它在换行时添加一个换行符 <br>,但我还没有找到无需为它编写 JavaScript 代码即可做到这一点。

这是我在 settings.py 中的配置:

CKEDITOR_CONfigS = {
    'default': {
        'toolbar': 'Custom','colorButton_colors': '000000,0000FF,FFFF00,FF0000,FF00FF,00FFFF,008000,FFFFFF','colorButton_enableAutomatic': False,'colorButton_enableMore': False,'extraPlugins': 'sharedspace','toolbar_Custom': [
            ['Italic','Underline'],{'name': 'colors','items': ['TextColor','BGColor']},],'sharedspaces': {
            'top': 'top','bottom': 'bottom',},'removePlugins': ['elementspath','resize','magicline'],'enterMode': 2,'shiftEnterMode': 2,'height': 150,'width': 300,}

我首先尝试在定义表单时设置小部件的 rowscols 属性,遵循接受的答案 here,但这并不能真正用于 CKEditor。像这样试过:

forms.py

from django import forms

class MyForm(forms.Form):
    # ...some fields...
    form_text = forms.CharField(widget=CKEditorWidget(attrs={'rows': 10,'cols': 40,'wrap': 'hard}))

这实际上成功地设置了 textarea 的属性(我在检查元素时可以看到它们),但是,当在编辑器中输入时,文本每行超过 40 个字符,并且换行不会添加 {{ 1}}。我猜是因为我不再输入文本区域,而是输入嵌入的 HTML 文档的正文。

然后我使用 JavaScript/jQuery“手动”执行此操作,并使用以下代码

注意:您可以跳过此代码跳转到下面的粗体部分。我添加它只是为了展示我已经尝试过的内容,以防万一它是相关的并且有人有建议。

<br>

这段代码完成了第一次测试的工作。你可以看到它没有考虑一些事情,比如很长的一行只包含一个“单词”的情况。这是因为我停止了工作,因为我意识到,每次修改编辑器的内容时​​,光标的位置都会变回第一行第一个单词的第一个字符。这样,用户就无法继续输入他们正在输入的单词。

也许我可以找到一种方法来将光标的位置设置在应有的位置,但我仍然需要知道是否有更简单的方法来完成我想要做的事情。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)