多实例CKEditor& CKEDITOR.stylesSet.add

时间:2013-12-15 21:30:12

标签: javascript css styles ckeditor

我正在使用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”已经注册。

结果是我根本没有得到任何编辑。虽然这个错误可能看似逻辑,但我想以一种好的方式解决它。暂时我设法在这个线程Adding custom styles to CKEditor之后解决它,所以我解决了在页面本身上添加自定义样式而不是在配置中这样:

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

如上所述,这可以强制我在我想要自定义样式的所有页面上使用此修复程序。有没有更好的解决方案来解决这个问题?我更喜欢在主配置文件中添加样式。

1 个答案:

答案 0 :(得分:3)

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

config.stylesSet = [{name:"Blue Title",element:"h3",styles:{color:"Blue"}},{name:"Red Title",element:"h3",styles:{color:"Red"}}];

这不是完美的解决方案,但它可以完成工作。