编辑器占位符
您可以在编辑器为空时显示可配置的占位符文本,以提示用户输入内容。这与 DOM 中使用的原生 placeholder
属性 类似。请勿与 合并字段 功能提供的內容占位符混淆。
# 演示
查看占位符功能的演示
此演示仅展示部分功能。访问 功能丰富的编辑器示例 以查看更多功能。
# 安装
编辑器占位符功能不需要单独的插件安装。但是,它需要在使用前配置编辑器。有两种不同的方法可以配置编辑器占位符文本
# 使用 placeholder
属性
在传递给 Editor.create()
方法(例如 ClassicEditor.create()
)的 <textarea>
元素上设置 placeholder
属性来配置占位符
<textarea id="editor" placeholder="Type the content here!"></textarea>
import { ClassicEditor, Essentials } from 'ckeditor5';
ClassicEditor
.create( document.querySelector( '#editor' ), {
plugins: [ Essentials, /* ... */ ],
} )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
# 使用编辑器配置
您可以使用 editor.config.placeholder
配置选项
- 当未将元素传递到
Editor.create()
方法时, - 当传递到
Editor.create()
方法的元素不是<textarea>
(例如,<div>
元素)时, - 覆盖传递到
Editor.create()
方法的<textarea>
的placeholder
文本,如果存在,但占位符文本应不同。
import { ClassicEditor, Essentials } from 'ckeditor5';
ClassicEditor
.create( document.querySelector( '#editor' ), {
plugins: [ Essentials, /* ... */ ],
placeholder: 'Type the content here!'
} )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
如果您的编辑器实现使用多个根节点,您应该传递一个对象,其键对应于编辑器根节点的名称,值等于应在每个根节点中设置的占位符
MultiRootEditor
.create(
// Roots for the editor:
{
header: document.querySelector( '#header' ),
content: document.querySelector( '#content' ),
leftSide: document.querySelector( '#left-side' ),
rightSide: document.querySelector( '#right-side' )
},
// Config:
{
placeholder: {
header: 'Type header...',
content: 'Type content...',
leftSide: 'Type left-side...',
rightSide: 'Type right-side...'
}
} )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
# 设置占位符样式
编辑器占位符文本使用与编辑器内容中第一个空元素(通常是段落)相关的 CSS 伪元素(::before
)进行显示。您可以使用以下代码片段来更改占位符的外观
.ck.ck-editor__editable > .ck-placeholder::before {
color: #d21714;
font-family: Georgia;
}
注意: .ck-placeholder
类也用于在其他地方显示占位符,例如 图像标题。确保您的自定义样式应用于正确的占位符子集。
# 更改占位符
可以通过更改编辑根节点中的 placeholder
属性,在运行时更新编辑器占位符。
editor.editing.view.document.getRoot( 'main' ).placeholder = 'new placeholder';
# 贡献
此功能的源代码可在 GitHub 上获取:https://github.com/ckeditor/ckeditor5/tree/master/packages/ckeditor5-core。
我们每天都在努力使我们的文档保持完整。您是否发现过时信息?缺少内容?请通过我们的 问题追踪器 报告。
随着 42.0.0 版本的发布,我们重新编写了大部分文档,以反映新的导入路径和功能。我们感谢您的反馈,帮助我们确保文档的准确性和完整性。