我使用以下代码将ckeditor添加到我的页面。
<textarea class="ckeditor" name="editor1"></textarea>
我想定义一些工具栏配置,因为我的应用程序中并非所有textareas都需要一个完整的工具栏。 我已根据自己的需要自定义了默认的工具栏配置,但我想进一步将其拆分为一些更基本的工具栏,用于我的一些textareas。
如果我使用class属性设置ckeditor,有没有办法做到这一点?
答案 0 :(得分:2)
对于按类名创建的编辑器,不可能有不同的配置。在这种情况下,只考虑全局CKEDITOR.config
。
还有这个问题的简单解决方法。首先,将此脚本放在文档的顶部:
<script>
CKEDITOR.replaceClass = null; // Disable replacing by class
</script>
现在为您要替换的每个data-custom-config
定义<textarea>
属性(config.customConfig),如下所示:
<textarea class="ckeditor" data-custom-config="myCustomConfig.js">
Moo
</textarea>
最后使用以下代码按类名手动替换编辑器(假设您的类为ckeditor
)。此代码将使用由ckeditor
属性中定义的配置驱动的CKEditor实例替换类data-custom-config
的所有textareas:
var textareas = Array.prototype.slice.call( document.getElementsByClassName( 'ckeditor' ) ),
textarea, cfg, customCfg;
while ( ( textarea = textareas.pop() ) ) {
textarea = new CKEDITOR.dom.element( textarea );
cfg = {};
if ( ( customCfg = textarea.getAttribute( 'data-custom-config' ) ) )
cfg[ 'customConfig' ] = customCfg;
CKEDITOR.replace( textarea.getId(), cfg )
}
现在是樱桃的顶部。将自定义工具栏配置放在myCustomConfig.js
:
CKEDITOR.editorConfig = function( config ) {
config.toolbar = [
{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
];
};
当然,您可以修改此代码以使jQuery更容易选择元素,使用一些对象文字而不是config.customConfig
等等。这只是一个如何解决问题的展示。