更改ckEditor的背景颜色

ran*_*ndy 3 ckeditor

我需要在加载时动态更改背景颜色我的ckEditor它所在的页面是一个动态加载页面,用户具有特定的bg颜色.我无法加载它必须只是编辑器主体背景颜色的CSS

所以我试过

window.onload=function(){
    CKEDITOR.instances.editor_data.addCss( 'body { background-color: #efefef; }' );
}
Run Code Online (Sandbox Code Playgroud)

我没有收到错误,但也没有得到任何更改

我也试过了

CKEDITOR.instances.editor_data.addCss( '#cke_editor_data { background-color: #efefef; }' );
Run Code Online (Sandbox Code Playgroud)

Alf*_*oML 16

如果您在window.load期间调用它,那么为时已晚,addCss定义了一些在创建编辑器时加载的css,但它不会修改正在运行的实例.

所以你可以这样(只使用addCSS):

CKEDITOR.on('instanceCreated', function(e) {
    e.editor.addCss( 'body { background-color: red; }' );
});
Run Code Online (Sandbox Code Playgroud)

或者这(使用编辑过的文档的更通用的方法)

CKEDITOR.on('instanceReady', function(e) {
    // First time
    e.editor.document.getBody().setStyle('background-color', 'blue');
    // in case the user switches to source and back
    e.editor.on('contentDom', function() {
        e.editor.document.getBody().setStyle('background-color', 'blue');
    });
});
Run Code Online (Sandbox Code Playgroud)