2013-06-18 25 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格式存储。我虽然对象具有与字符串格式相同的能力。 –