我正在使用CKEditor构建一个简单的网站构建工具。该工具可以选择和设置调色板,这应该反映在CKEditor的样式下拉列表中。但是,在我看来,在CKEditor中不能覆盖样式。我目前的代码是:
CKEDITOR.stylesSet.add( 'styles', [
// Block-level styles
{ name: 'blah 1', element: 'h2', styles: { 'color': '#xxxxxx' } },
{ name: 'blah 2', element: 'h3', styles: { 'color': '#xxxxxx' } },
{ name: 'blah 3' , element: 'h4', styles: { 'color': '#xxxxxx' } },
{ name: 'blah 4' , element: 'h5', styles: { 'color': '#xxxxxx' } },
] );
CKEDITOR.config.stylesSet = 'styles';
现在,如果我用新款式重复这个,我得到:
ckeditor.js:232 Uncaught Error: [CKEDITOR.resourceManager.add] The resource name "styles" is already registered.
我尝试过使用CKEDITOR.replace,但这并没有解决问题。我想,显而易见的解决方案是在每次使用时迭代样式名称; style1,style2,style3 ......但这不是非常有利于资源。有没有人有这方面的实际解决方案?
谢谢, 利
答案 0 :(得分:0)
您是否尝试将样式重命名为默认?
我使用它并且它可以工作,我加载外部样式文件。但是阵列结构相同。
CKEDITOR.config.stylesSet = 'default:http://' + window.location.host + '/folder/fckeditor.styles.js';
答案 1 :(得分:-1)
所以,在重新创建面板之前,我总是通过销毁面板来确定解决方案(如果存在)。例如:
if (CKEDITOR.instances['footer-' + i]) {
CKEDITOR.instances['footer-' + i].destroy(true);
}
var editor = CKEDITOR.inline('footer-' + i, {
stylesSet: [
// Block-level styles
{ name: 'Blue Title', element: 'h2', styles: { 'color': 'Blue' } },
{ name: 'Red Title' , element: 'h3', styles: { 'color': 'Red' } },
{ name: 'Brown Title' , element: 'h4', styles: { 'color': 'Red' } },
{ name: 'Purple Title' , element: 'h5', styles: { 'color': 'Red' } }
]
});
现在,每次都会发出警告,说:
[CKEDITOR] For more information about this error go to http://docs.ckeditor.com/#!/guide/dev_errors-section-editor-incorrect-destroy
但是,使用CKEditor API没有干净的方法,所以因为它有效,我将其标记为答案。