我在CKEditor中有一些文本应该是可编辑的,一些文本应该是不可编辑的。
我在一个范围内附上的不可编辑的文字如下所示。
<span contenteditable="false" unselectable="on">Here is where my non-editable text goes</span>
我在一个范围内包含的可编辑文本如下。
<span style="background-color:Yellow">$[insert Date]</span>
这里我们使用样式背景黄色向用户突出显示黄色的可编辑文本。
我将光标放在可编辑的文本中,然后使用向左或向右箭头键移动。一旦我移出可编辑的文本区域,我甚至可以使用退格键删除不可编辑的文本。
问题是,只要我的光标移动到可编辑文本区域之外,代码就无法检测到任何按键操作,因为我无法限制退格键或删除。
Range功能是否有助于解决此问题?如果是,请帮助并举例说明我们可以使用范围代码。
答案 0 :(得分:0)
修改强>
我注意到有一个$ nonEditable dtd描述符也可以派上用场:
https://docs.ckeditor.com/ckeditor4/latest/api/CKEDITOR_dtd.html https://ckeditor.com/old//forums/CKEditor-3.x/Forcing-custom-element-be-BLOCK-level-element
<强> PREVIOUS:强> 您可以使用窗口小部件功能使文本无法使用 - 在CKEditor中使用contenteditable =“false”可能有点不可预测,但创建窗口小部件扩展插件可以获得非常好的结果。
这将是一个非常基本的小部件,只需使用upcast检查,如果元素在''上有'unselectable =“,那么文本将自动变为不可编辑,并且使用箭头键将简单地跳过文本而不是进入它。您还可以使用小部件插件获得相当多的其他功能,并且可以更轻松地集成到事件,对话框编辑等内容中。
您可以在此处获取小部件创建教程:
https://docs.ckeditor.com/ckeditor4/latest/guide/widget_sdk_tutorial_1.html
有关更多信息,我刚刚回答了一个关于在这里制作可用部件的问题: