CKEditor自定义ACF禁用所有插件

时间:2015-03-20 18:02:24

标签: ckeditor ckeditor4.x

我正在尝试在我的ck编辑器中设置一个允许内容的明确列表,但似乎我的列表中没有足够的包容性,因为几乎所有的插件都被禁用了。如果我将ACF设置回auto(删除allowedContent),则所有插件都会返回。这是config.js中的allowedConent

config.allowedContent = 
{
     h1: true,
     h2: true,
     h3: true,
     'span, p, ul, ol, li,': {
         styles: 'color, margin-left, margin-right, font-size'
     },
     'a[!href,target,name]': true,
     b: true,
     u: true,
     i: true,
}

然而,似乎启用的唯一按钮是粗体,下划线和斜体。我试图找出为什么我的其他插件无法正常工作。例如,链接插件具有以下内容:

var allowed = 'a[!href]',
required = 'a[href]';

// Add the link and unlink buttons.
editor.addCommand( 'link', new CKEDITOR.dialogCommand( 'link', {
    allowedContent: allowed,
    requiredContent: required
} ) );
editor.addCommand( 'anchor', new CKEDITOR.dialogCommand( 'anchor', {
    allowedContent: 'a[!name,id]',
    requiredContent: 'a[name]'
} ) );

正如你所看到的,我已经定义了必要的属性(带有href和名称的锚),但按钮没有出现!我打印出CKEDITOR.instances [“editor-1”]。filter.allowedContent并验证了我期待的对象,验证了我的语法是否正确。我也尝试添加一些常见的元素,比如看看是否添加其中一个带回来的插件,但事实并非如此。那我错过了什么?

1 个答案:

答案 0 :(得分:1)

似乎我正在混合我的对象语法和我的字符串语法。一旦我纠正了这个,锚和字体大小按钮就开始出现了。以下是我到目前为止:

config.allowedContent = 
{
     h1: true,
     h2: true,
     h3: true,
     a: {
        attributes: ['!href','target','name']
     }, 
     b: true,
     u: true,
     i: true,
     // font-size
     span: {
         styles: { 'font-size': '#(size)' },
         overrides: [ { element :'font', attributes: { 'size': null } } ]
     }
}

我仍然需要弄清楚font-color和其他一些的正确定义,但这只是检查插件代码并看到他们期望的内容。