对于CKEditor,我有一个彩色皮肤,但我得到一个单色工具栏。 “皮肤”下的颜色图标与各个插件下的黑白图标之间似乎存在冲突。
皮肤是“moonocolor”,颜色图标位于:
{CKEDITOR}/skins/moonocolor/icons/
但是各自下面都有黑白图标:
{CKEDITOR}/plugins/{plugin_name}/icons/
我想要颜色。我需要做什么?我认为core / resourcemanager.js处理了这种类型的东西。
我应该补充说我正在使用该产品的完整源代码版本;很多小文件。
答案 0 :(得分:1)
回答我自己的问题。
问题是工具栏中出现了错误的图标。我选择了一个皮肤,文件存在,但工具栏中没有使用图标。配置文件“config.js”使用正确的规范构建:
config.skin = 'moonocolor';
但刚才,我成功地让CKEditor工具栏使用了这些图标。首先我进入了皮肤目录,就我而言,这是“moonocolor”。
$ cd moonocolor
在该目录中,有一个名为“skin.js”的程序文件。我编辑了那个。 (我的编辑是“gvim”。)
$ gvim skin.js
在脚本的底部,有一个立即执行的匿名函数,除了它都被注释掉了。为帮助您识别此功能,请注意它包括以下内容:
(function() {
var icons = ('...long string listing plugin names...').split( ',' );
var iconsFolder = CKEDITOR.getUrl( CKEDITOR.skin.path() + 'icons/' + ( CKEDITOR.env.hidpi ? 'hidpi/' : '' ) );
for ( var i = 0; i < icons.length; i++ ) {
CKEDITOR.skin.addIcon( icons[ i ], iconsFolder + icons[ i ] + '.png' );
}
})();
取消注释整个功能。当CKEditor启动时,它会找到该文件并运行它,此时,该函数将立即执行。 (对于不熟悉JavaScript的读者,这就是它执行的原因:围绕函数定义的括号,以及其后的另一个括号,一起工作以立即执行。)CKEditor在此子目录中找到此文件的原因是因为你告诉了CKEditor关于配置文件中的子目录;请参阅上面的“config.skin ='...'”。
“for()”循环为列表中提到的每个插件调用“addIcon()”。对“addIcon()”的调用通过“CKEDITOR.skin.path()”指定所需的子目录。对于每个列出的插件,所需的“skins”子目录(在我的情况下为“... / skins / moonocolor”)被注册为图标的首选源。
在该脚本中,在该函数附近,有一些注释应该被阅读。评论解释说,在生产版本和开发版本中,图标会自动显示。 (我假设这是对“缩小”与完整源文件的引用。)