问题描述
我想限制 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,}
我首先尝试在定义表单时设置小部件的 rows
和 cols
属性,遵循接受的答案 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 (将#修改为@)