禁用所有元素的所有样式属性

时间:2013-06-20 19:31:18

标签: javascript ckeditor

我正在寻找符合CKEditor的HTML 4,因为我们在后端使用htmLawed来过滤不良的JS / CSS / HTML进入我们的数据库。到目前为止,我们已经设置了htmLawed来删除任何带有“style”属性的HTML元素。这适用于核心样式和字体大小/颜色,例如我的配置:

    coreStyles_bold      : { element: 'b' },
    coreStyles_italic    : { element: 'i' },
    coreStyles_underline : { element: 'u' },
    coreStyles_strike    : { element: 'strike' },
    fontSize_style       :
    {
        element    : 'font',
        attributes : { 'size': '#(size)' }
    },
    colorButton_foreStyle :
    {
        element    : 'font',
        attributes : { 'color': '#(color)' }
    },
    colorButton_backStyle:
    {
        element : 'font',
        styles  : { 'background-color': '#(color)' }
    }

我遇到的问题是缩进。当我有一个我尝试缩进的列表元素(例如“ul”或“ol”)时,CKEditor呈现HTML,如下所示,然后发送到服务器。 HtmLawed然后从ul元素中删除style属性,并在我在前端显示时将列表呈现为不缩进。

<ul style="margin-left: 40px;">
<li>Some Text Here</li>
</ul>

我的问题是......如何阻止所有元素设置任何类型的样式属性?我希望CKEditor使用纯HTML来进行格式化,因为我们只允许一组有限的格式化选项。我真的希望看到CKEditor生成的HTML看起来像这样:

<ul>
    <ul>
        <li>Some Text Here</li>
    </ul>
</ul>

1 个答案:

答案 0 :(得分:1)

有两个单独的东西 - 缩进插件应该只能包含列表(改变它们的结构,不添加左边距),而不是块。此时,一个插件会完成两项工作,这是没有意义的。此补丁将在大约一个月内发布 - https://dev.ckeditor.com/ticket/10027

尽管现在可以配置缩进来使用类而不是样式 - 请参阅config.indentClasses选项。