限制编辑
限制编辑功能引入了两种模式:标准编辑模式和限制编辑模式。在限制编辑模式下工作的人员无法更改内容,除了标记为可编辑的部分。
# 演示
下面的演示允许您模拟标准编辑模式和限制编辑模式。
首先,在标准编辑模式下创建文档模板。选择文本的一部分,然后使用启用编辑工具栏按钮
将选定区域转换为可编辑区域或删除现有区域。然后切换到限制编辑模式,查看可编辑和不可编辑区域的行为。
提示:在限制模式下,使用 Tab 在一个可编辑区域之间导航(以及 Shift+Tab 返回)。
模式:
尊敬的 客户姓名,
感谢您联系我们。您的案件已记录为 案件 ID,并已分配给 技术人员姓名。我们将尽力在接下来的 时间 小时内解决您的问题。
如果您需要任何进一步的帮助,请随时通过 热线号码 联系我们的客户支持热线。
此致
姓名
客户支持团队
此演示展示了一组有限的功能。访问 功能丰富的编辑器示例 以查看更多实际操作。
# 其他功能信息
限制编辑功能启用两种编辑模式
- 标准编辑模式 - 在此模式下,用户可以编辑内容并选择在限制编辑模式下应可编辑的区域。
- 限制编辑模式 - 当您在此模式下初始化编辑器时,用户只能在标准编辑模式下用户选择的区域内编辑内容。
您可以想象一个工作流程,其中某些用户组负责创建文档模板。同时,第二个用户组只能填补空白(例如,填写缺少的数据,如姓名、日期、产品名称等)。
通过使用此功能,您的应用程序的用户将能够创建模板文档。在某种程度上,您可以使用此功能来生成具有富文本功能的表单。这种实际应用程序在 如何使用 CKEditor 5 分页功能创建可打印文档 博客文章中有所展示。
# 安装
在 安装编辑器 后,将该功能添加到您的插件列表和工具栏配置中。
# 运行标准编辑模式
要以标准编辑模式初始化编辑器,请添加 StandardEditingMode
插件,并将 'restrictedEditingException'
按钮添加到工具栏。
import { ClassicEditor, StandardEditingMode } from 'ckeditor5';
ClassicEditor
.create( document.querySelector( '#editor' ), {
plugins: [ StandardEditingMode, /* ... */ ],
toolbar: [ 'restrictedEditingException', /* ... */ ]
} )
.then( /* ... */ )
.catch( /* ... */ );
# 运行受限编辑模式
要以受限编辑模式初始化编辑器,请添加 RestrictedEditingMode
插件,并将 'restrictedEditing'
按钮添加到工具栏。
import { ClassicEditor, RestrictedEditingMode } from 'ckeditor5';
ClassicEditor
.create( document.querySelector( '#editor' ), {
plugins: [ RestrictedEditingMode, /* ... */ ],
toolbar: [ 'restrictedEditing', /* ... */ ]
} )
.then( /* ... */ )
.catch( /* ... */ );
# 配置
您可以配置哪些功能应该在受限模式下可用。例如,以下配置允许用户输入、删除,还可以加粗文本。
import { ClassicEditor, RestrictedEditingMode, Bold } from 'ckeditor5';
ClassicEditor
.create( document.querySelector( '#editor' ), {
plugins: [ Bold, RestrictedEditingMode, /* ... */ ],
toolbar: [ 'bold', '|', 'restrictedEditing', /* ... */ ],
restrictedEditing: {
allowedCommands: [ 'bold' ]
}
} )
.then( /* ... */ )
.catch( /* ... */ );
注意:在受限编辑区域中,始终可以输入和删除文本。有关更多信息,请查看 config.restrictedEditing
文档。
# 在受限编辑模式中启用命令
受限编辑模式仅允许在指定的区域修改编辑器内容。在这些区域之外,默认情况下会关闭大多数编辑器命令。如果您希望在受限编辑区域之外启用一些命令,可以使用 RestrictedEditingModeEditing.enableCommand()
方法。您必须在编辑器插件的 afterInit()
回调中执行此方法。
import { ClassicEditor, Plugin } from 'ckeditor5';
class MyPlugin extends Plugin {
afterInit() {
this.editor.plugins.get( 'RestrictedEditingModeEditing' ).enableCommand( 'myCommand' );
}
}
# 相关功能
CKEditor 5 还有更多功能可帮助您控制用户权限。
阅读这篇 CKEditor 博客文章,了解如何将受限编辑与其他功能结合使用以创建可编辑的文档模板。
# 通用 API
StandardEditingMode
插件注册
'restrictedEditingException'
按钮,可让您将区域标记为可编辑。'restrictedEditingException'
命令,允许将区域标记为可编辑。
'restrictedEditing'
下拉菜单,可让您在可编辑区域之间导航。'goToPreviousRestrictedEditingException'
和'goToNextRestrictedEditingException'
命令,允许在可编辑区域之间导航。
我们建议使用官方的 CKEditor 5 检查器 进行开发和调试。它将为您提供有关编辑器状态的大量有用信息,例如内部数据结构、选择、命令等等。
# 实时协作
使用 实时协作 时,所有连接的用户应始终处于相同模式。您不能在一个协作会话中为不同的用户启用不同的插件列表。
# 贡献
该功能的源代码在 GitHub 上可用,地址为 https://github.com/ckeditor/ckeditor5/tree/master/packages/ckeditor5-restricted-editing。
我们每天都在努力使我们的文档保持完整。您发现过时信息了吗?缺少什么吗?请通过我们的 问题跟踪器 报告。
随着 42.0.0 版本的发布,我们重写了大部分文档以反映新的导入路径和功能。感谢您的反馈,帮助我们确保文档的准确性和完整性。