我使用以下代码将ckeditor添加到我的页面.
<textarea class="ckeditor" name="editor1"></textarea>
Run Code Online (Sandbox Code Playgroud)
我想定义一些工具栏配置,因为我的应用程序中并非所有textareas都需要一个完整的工具栏.我已经为我的需求定制了默认的工具栏配置,但是想要进一步细分到我的一些textareas的更基本的工具栏.
如果我使用class属性设置ckeditor,有没有办法做到这一点?
对于按类名创建的编辑器不可能有不同的配置。CKEDITOR.config在这种情况下,仅考虑全局。
对于这个问题仍然有简单的解决方法。首先,将此脚本放在文档的顶部:
<script>
CKEDITOR.replaceClass = null; // Disable replacing by class
</script>
Run Code Online (Sandbox Code Playgroud)
现在为每个要替换的属性定义data-custom-config属性(如config.customConfig),如下所示:<textarea>
<textarea class="ckeditor" data-custom-config="myCustomConfig.js">
Moo
</textarea>
Run Code Online (Sandbox Code Playgroud)
最后使用以下代码手动按类名替换编辑器(假设您的类是ckeditor)。此代码将ckeditor用属性中定义的配置驱动的 CKEditor 实例替换类的所有文本区域data-custom-config:
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 )
}
Run Code Online (Sandbox Code Playgroud)
现在最重要的是樱桃。将您的自定义工具栏配置放入myCustomConfig.js:
CKEDITOR.editorConfig = function( config ) {
config.toolbar = [
{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
];
};
Run Code Online (Sandbox Code Playgroud)
当然,您可以修改此代码以涉及 jQuery 以便更轻松地选择元素,使用一些对象文字代替等等config.customConfig。这只是如何解决问题的展示。
| 归档时间: |
|
| 查看次数: |
7564 次 |
| 最近记录: |