首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态记号编辑器工具栏

动态记号编辑器工具栏
EN

Stack Overflow用户
提问于 2012-12-04 16:53:29
回答 1查看 2.9K关注 0票数 1

我想根据用户类型和一些条件来设置ckeditor工具栏。

我部分地做了如下工作:

代码语言:javascript
复制
switch(UserMode)
{
    case "1":
        config.toolbar_MyTool = [
            ['Find', 'SelectAll'], ['Anchor'], ['Maximize']
        ];
        break;
    case "2":
        config.toolbar_MyTool = [
            ['Find'], ['Anchor'], ['Maximize']
        ];
        break;
}

基于usermode的代码很长,所以我想创建一个数组,并且只想分配如下所示的工具栏:

代码语言:javascript
复制
config.toolbar_MyTool = myToolArray;

另外,我想检查自己的帖子或其他人的帖子。如果这是自己的帖子,我想添加一些额外的工具。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-02 18:20:34

首先,在config.js中定义不同的工具条

代码语言:javascript
复制
config.toolbar_MyToolUserMode1 = [
        ['Find', 'SelectAll'], ['Anchor'], ['Maximize']
    ];

config.toolbar_MyToolUserMode2 = [
        ['Find'], ['Anchor'], ['Maximize']
    ];

然后可以在页面中使用这些工具栏定义,但请注意,一旦创建了CKEditor的实例,工具栏布局就不能更改:

代码语言:javascript
复制
CKEDITOR.config.toolbar = "MyToolUserMode1";
var instance = CKEDITOR.appendTo(parentElement);

解决方案1:

您必须创建一个新实例来动态更改工具栏:

代码语言:javascript
复制
switch(UserMode)
{
case "1":
    if (instance) instance.destroy();
    CKEDITOR.config.toolbar = "MyToolUserMode1";
    instance = CKEDITOR.appendTo(parentElement);
    break;
case "2":
    if (instance) instance.destroy();
    CKEDITOR.config.toolbar = "MyToolUserMode2";
    instance = CKEDITOR.appendTo(parentElement);
    break;
}

解决方案2:

但是,如果您对在usermode 2中显示完整的工具栏并使SelectAll-Button变灰感到满意,那么以下可能是您的解决方案:

代码语言:javascript
复制
CKEDITOR.config.toolbar = "MyToolUserMode1";
var instance = CKEDITOR.appendTo(parentElement);

switch(UserMode)
{
case "1":
    instance.getCommand('selectAll').enable();
    break;
case "2":
    instance.getCommand('selectAll').disable();
    break;
}

编辑2月15日

解决方案3:

根据您的评论,->如何使用array.push动态构建

在config.js中不需要配置

代码语言:javascript
复制
    // your code
    var myToolbarSection1 = new Array();
    myToolbarSection1.push('Bold');
    myToolbarSection1.push('Italic');

    // attaching this section to toolbar
    var myToolbar = new Array();
    myToolbar.push(myToolbarSection1);

    // setting the toolbar
    CKEDITOR.config.toolbar_Dynamic = myToolbar;
    CKEDITOR.config.toolbar = 'Dynamic';

    var instance = CKEDITOR.appendTo('myDIVID');
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13699095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档