2013-06-18 24 views
1

CKEditor的一些插件似乎指定了屬性的值。例如,左到右插件有以下規則:CKEditor - 使用高級內容過濾器規則來指定值

{ 
    "styles":null, 
    "requiredStyles":null, 
    "classes":null, 
    "requiredClasses":null, 
    "attributes":{ 
    "dir":"ltr" 
    }, 
    "requiredAttributes":{ 
    "dir":true 
    }, 
    "elements":{ 
    "span":true 
    }, 
    "featureName":"styles", 
    "propertiesOnly":false, 
    "match":null 
}, 

我怎麼可以指定字符串格式規則的價值? 類似於span[!dir=ltr]

+0

你想要這些規則返回字符串格式,我說得對嗎? – oleq

+0

你是對的!我不知道如何翻譯''屬性「:{」dir「:」ltr「}'。 –

回答

3

你不能。字符串格式不允許這樣的定義。您可以指定span[!dir],因此所有跨度都需要dir屬性,而不是其他任何值。藉助對象定義,您可以做更多使用功能:

... 
'ul, li: true, 
'$0': { 
    match: function(el) { 
     return el.name == 'b'; 
    }, 
    propertiesOnly: true, 
    attributes: 'dir' 
} 
'$1': { 
... 

爲什麼你堅持使用字符串格式?您可以使用對象並將其存儲爲JSON。

+0

值得一提的是'match'函數驗證了這個規則是否應該應用於給定的元素。所以你可以在那裏檢查'el.attributes.dir'的值並返回'false'來跳過錯誤值的元素。如果它是允許'dir'屬性的唯一規則,那麼它將被刪除。 – Reinmar

+0

謝謝。有文檔在談論這個嗎?什麼是'$ 0'?我可以將它作爲Object格式存儲。我雖然對象具有與字符串格式相同的能力。 –