2013-06-20 65 views
0

由於我們在後端使用htmLawed來過濾進入我們數據庫的錯誤JS/CSS/HTML,因此我正在尋找HTML 4與CKEditor的兼容性。到目前爲止,我們已經設置了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元素中去掉樣式屬性,並在前端顯示時將列表呈現爲不縮進。

<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

有兩個獨立的東西 - 縮進插件應該能夠indet只有列表(改變其結構,不增加左頁邊距),而不是塊。在這個時候,一個插件做兩份工作,沒有任何意義。這個補丁將在大約一個月內發佈 - https://dev.ckeditor.com/ticket/10027

儘管現在可以將縮進配置爲使用類而不是樣式 - 請參閱config.indentClasses選項。

+0

我不能使用類。這是因爲我們使用CKEditor的輸出來顯示在前端和PDF中(使用PHP PDF庫)。 PDF庫不知道這些類。 – 12hys