Ckeditor:如何使h3、h4、h5等标签在ckeditor中不可编辑?

6

Ckeditor:如何使一些标签(如h3,h4,h5)在ckeditor中不可编辑?

可以采用js或css解决方案

3个回答

9
在config.js文件中,使用以下代码定义您想要在CKEditor中允许的元素(我已删除h1):
config.format_tags = 'p;h2;h3;h4;h5;h6;pre;address;div'

2
protectedSource是与此相关的首选配置设置。

{Array} CKEDITOR.config.protectedSource

要在输入HTML上执行的正则表达式列表,指示必须保持不变的代码。

我不是正则表达式的专家,但像这样的东西应该可以解决问题:
config.protectedSource.push(/[^<]*(<h1>([^<]+)<\/h1>)/g);

你可能需要稍微调整一下。注意:该形式中的正则表达式只会捕获<h1>...</h1>标签,而不是像< h1 >...< /h1>这样的偏差。


问题:如果我启用按钮以查看源代码(HTML),我是否也可以防止用户进行编辑? - Upperstage
@Upper Stage: 好问题。我不知道。如果我找到时间,我会试一试。 - Pekka
但是它在编辑器中不显示h1标签之间的文本,我应该能够在编辑器中看到它,但不能更新它。 - Ashish Mehra
事实上,这不是我预期的。当使用此选项时,编辑器会隐藏文本的受保护部分。我的意图是让它们可见,但用户不能修改 :( - Ernesto

2

您可以向标签中添加属性contenteditable=false。
例如:

ckeditor.insertHtml('<h1 contenteditable="false">Not editable text</h1>');

1
这可以防止用户编辑标签的内容,但不能防止用户通过按下退格键来删除整个元素。 - Ernesto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接