Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在CkEditor中,当我';我正在编辑?_Javascript_Jquery_Css_Ckeditor - Fatal编程技术网

Javascript 在CkEditor中,当我';我正在编辑?

Javascript 在CkEditor中,当我';我正在编辑?,javascript,jquery,css,ckeditor,Javascript,Jquery,Css,Ckeditor,当CKEditor加载并且我正在编辑内容时,我希望在编辑时背景为黄色 如何在编辑器中“设置”该样式表。创建一个具有所需背景颜色的CSS类,然后使用jQuery.focus()在页脚中的其他javascript中: $('#target').focus(function() { $(this).addClass("yellowBG"); }); 大概是这样的: var editor = CKEDITOR.replace( 'editor1' ); //textarea with id="e

当CKEditor加载并且我正在编辑内容时,我希望在编辑时背景为黄色


如何在编辑器中“设置”该样式表。

创建一个具有所需背景颜色的CSS类,然后使用jQuery
.focus()在页脚中的其他javascript中:

$('#target').focus(function() {
  $(this).addClass("yellowBG");
});
大概是这样的:


var editor = CKEDITOR.replace( 'editor1' ); //textarea with id="editor1"
editor.on( 'instanceReady', function( ev ){
    //set the background properties
    this.document.$.childNodes[1].childNodes[1].style.backgroundColor = 'Yellow';
    editor.focus();
});

希望对您有所帮助。

有一个选项
contentsCss
,可以让您加载包含自定义样式定义的外部CSS样式表。使用它,你可以使你的内容看起来和你网站上的内容一模一样。因此,为了使用它,您需要以以下方式实例化CKEditor:

CKEDITOR.replace('mytextarea', {
    // Custom stylesheet for the contents
    contentsCss : 'assets/custom.css'
});
您还可以定义您的
custom.css
,例如:

body {
    font-family: Arial, Verdana, sans-serif;
    font-size: 12px;
    color: #444;
    background-color: yellow;
}

h1, h2 {
    color: #555;
    background-color: #EFEFEF;
}

/* etc some custom styles */

编辑使用config.js 使用
config.js
文件有两种方法可以实现您所需的功能。例如:

CKEDITOR.editorConfig = function( config )
{
    // ... some other configuration options

    // Define some custom class to be assigned to body element ogf the editor area
    config.bodyClass = 'body-yellow';
};
在与
config.js
相同的文件夹中创建
contents.css
文件。在内部定义您的样式:

.body-yellow {
    background-color: yellow;
}

就是这样。

如果您想更进一步,您可以在运行时从javascript中定义自定义样式表-

function generateCSS(){
    var base = document.createElement('style'),
        baseAttributes = {'id': 'yourID', 'type': 'text/css'}, 
        cssString = '';
    base = $(base).attr(baseAttributes);
    //Now create your css rules
    cssString += '.body-yellow {background-color: yellow;}';
    base.append(cssString).appendTo('head');
}
然后当你处理完它,你可以删除它,如果你愿意的话


当然,您可以使用纯JavaScript来实现这一点。我在这里使用jQuery只是为了简洁。当你的插件虚拟化了你的行,而你又不想在样式表中塞满可能使用或不使用的规则时,这种方法会有所帮助。因此,当删除和插入行时(假设这些行上有很多自定义样式),你不需要一直在DOM中挖掘来重新应用样式->生成你的css并完成它。

我可以在config.cfg中这样做而不是那样做吗?样式表解析器只在用css中可用的类自动填充样式组合时才有用。考虑到您提出的样式表,它不会起任何作用。您的答案中真正重要的部分是使用contentsCss选项来指定必须应用于内容@AlfonsoML的样式表。您真的认为我在没有测试的情况下发布了我的答案吗?这个例子可以很好地工作。@user847495是的,你可以,这样做也很简单。检查我的更新答案。@dfsq是的,您的答案有效,因为您正确指定了ContentSCS,但不需要回答中有关样式表解析器插件的部分。试试看:不要添加那个插件,你会发现这些样式仅仅通过使用contentsCSC就可以应用到内容上。你能在jsfiddle.com上发布你当前的代码并链接它吗?或者,拍摄一张屏幕截图,指向你想要变成黄色的东西?我想知道你是指文本区还是工具栏。