CKEditor从表中删除class属性

Tri*_*oan 10 html css ckeditor

在我<textarea>,我有这个文字:

<table class='table table-striped'>
<tr>
<td>1</td>
<td>2</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)

使用后CKEDITOR.replace(),我的文本区域成为CKEditor,并且其中有一个表格.问题是CKEditor将其类添加到我的表中cke_show_border.只有该类中的属性应用于表,我的类都不会应用.

我应该怎么做才能使它适用于我table和table-striped班级?

谢谢你的帮助.

JTH*_*Cat 9

我有一个类似的问题,在Drupal 7中使用CKEditor 7.x.1.13打开和保存是在我的HTML元素中删除属性.在"自定义JavaScript配置"下添加以下内容修复了它.

config.allowedContent = true;
Run Code Online (Sandbox Code Playgroud)


小智 8

您可以通过设置允许任何内容:标签,类,样式和属性

config.allowedContent = true;
Run Code Online (Sandbox Code Playgroud)

但是,更好的方法是仅允许插件提供的功能.要允许任何类附加到表,请键入

config.extraAllowedContent = 'table(*)';
Run Code Online (Sandbox Code Playgroud)

要阅读有关规则语法的更多信息,请访问:http://docs.ckeditor.com/#!/ guide/dev_allowed_content_rules-section-string-format


ole*_*leq 6

正如我在这里看到的,很可能你正在使用CKEditor 4.1或更新版本,而你的问题是高级内容过滤器.我猜你的表格对话框中没有"高级"选项卡,dialogadvtab编辑器包中也没有插件:

CKEDITOR.instances.yourInstance.plugins.dialogadvtab
> undefined
Run Code Online (Sandbox Code Playgroud)

对?然后你必须配置config.extraAllowedContent:

config.extraAllowedContent = `table[class]`;
Run Code Online (Sandbox Code Playgroud)

为什么会这样,你可能会问?这是因为编辑器中没有将类附加到标记的功能(命令,按钮,对话框,字段等)<table>.所以没有任何功能说:

"嘿,编辑,我要给桌子添加课程,你应该对它很冷静."

实际上,这是通过定义allowedContent和功能定义来完成的.因此,如果没有dialogadvtab加载的插件会告诉编辑器表可以使用类,编辑器会丢弃class输出中的属性,因为任何功能都不支持这些属性.

这种行为是为了保持您的标记清洁,并控制您的WYSIWYG编辑器生成的内容.它仍然需要关注和基本的理解.

请参阅我之前对类似问题的回答:CKEditor会自动从div中删除类


Alf*_*oML 0

将 border=1 添加到表中,这样 CKEditor 就不会在表上设置自己的类(可能还有其他方法可以做到这一点,但我总是发现这更容易,因为它不需要对 CKEditor 进行任何更改)