我正在使用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' } }
]
});:
如上所述,这可以强制我在我想要自定义样式的所有页面上使用此修复程序。有没有更好的解决方案来解决这个问题?我更喜欢在主配置文件中添加样式。
答案 0 :(得分:3)
我在页面上只有一个编辑器时遇到了同样的错误。我通过在主配置中将stylesSet
设置为我想要的样式定义来修复它。
config.stylesSet = [{name:"Blue Title",element:"h3",styles:{color:"Blue"}},{name:"Red Title",element:"h3",styles:{color:"Red"}}];
这不是完美的解决方案,但它可以完成工作。