我正在尝试使h1标签可编辑。
我的HTML
<h1 id="theh1">
Hello how are you?
</h1>
我的JS是
e = document.getElementById("theh1");
InlineEditor
.create( e,{
removePlugins: [ 'Heading', 'Link' ],
toolbar: [ 'bold', 'italic', 'bulletedList', 'numberedList', 'blockQuote' ]
} )
.catch( error => {
console.error( error );
} );
这是一个JSFiddle:https://jsfiddle.net/r66uhfee/3/
如果您查看来源,则会在编辑后看到h1
标记内有p
个元素。如何禁用此行为?
答案 0 :(得分:2)
不幸的是,CKEditor 5还不支持这种开箱即用。 Allow enabling all types of editors on paragraph-like root票证中描述了此功能。
但是,此功能可能很容易添加。关键的代码行在每个编辑器创建者中,如下所示:
this.model.document.createRoot();
使用默认值调用createRoot()
方法,因此它始终创建一个名为$root
的根,schema配置为仅允许块(如段落和标题)。< / p>
如果您要创建一个名为paragraph
的根,那么该根只允许其中的文本,编辑器将停止创建段落:
this.model.document.createRoot( 'paragraph' );
您可能需要解决的另一件事是,在这种特殊情况下,某些功能可能依赖于此paragraph
在架构中被标记为limit element,因此,在特定的编辑器中在类似段落的元素上启用,执行此操作也很好:
editor.model.schema.extend( 'paragraph', { isLimit: true } );
但是,我们还没有对此进行测试,我们还没有为它设计合适的自动解决方案,这就是故障单仍然打开的原因。所以 - 框架应该允许这样做,但实现还没有考虑这种情况。