Multiple Instanced CKEditor&CKEDITOR.stylesSet.add



我使用的是CKeditor V3.x,在一个页面上有多个实例。我必须为客户端添加自定义样式,所以我使用了CKEDITOR.stylesSet.add,如下所述(如文档中所述http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Styles):

CKEDITOR.stylesSet.add( 'mystyles',
    [
        { name : 'Quote onderschrift', element : 'p', attributes : { 'class' : 'quote_sub' } },
        { name : 'Inleiding', element : 'p', attributes : { 'class' : 'inleiding' } }
    ]); 
    config.stylesSet = 'mystyles';

当一个页面上只有一个编辑器时,这确实有效。当我在一个页面上有更多的编辑器时,我会收到以下错误(通过Firebug):

未捕获的异常:[CKEDITOR.resourceManager.add]资源名称"mystyles"已注册。

结果是我根本没有得到任何编辑。虽然这个错误看起来很合理,但我想用一种好的方法来解决它。目前,我通过向CKEditor添加自定义样式来解决这个问题,所以我解决了在页面本身添加自定义样式的问题,而不是在像这样的配置中:

CKEDITOR.replace('post_description', {
    stylesSet : 
    [
        { name : 'Quote onderschrift', element : 'p', attributes : { 'class' : 'quote_sub' } },
        { name : 'Inleiding', element : 'p', attributes : { 'class' : 'inleiding' } }
    ]
});:

如前所述,这适用于迫使我在所有需要自定义样式的页面上使用此修复程序。关于如何解决这个问题,有更好的解决方案吗?我更喜欢在主配置文件中添加样式。

页面上只有一个编辑器,我也遇到了同样的错误。我通过在主配置中将stylesSet设置为我想要的样式定义来修复它。

config.stylesSet = [
    {
        name: 'Blue Title',
        element: 'h3',
        attributes: { 'class': 'blue-title' },
        styles: { color: 'blue' }
    }, {
        name: 'Red Text',
        element: 'p',
        attributes: { 'class': 'red-text' },
        styles: { color: 'red' }
    }
];

这不是一个完美的解决方案,但它能完成任务。

相关内容

  • 没有找到相关文章

最新更新