我想根据用户类型和一些条件来设置ckeditor工具栏。
我部分地做了如下工作:
switch(UserMode)
{
case "1":
config.toolbar_MyTool = [
['Find', 'SelectAll'], ['Anchor'], ['Maximize']
];
break;
case "2":
config.toolbar_MyTool = [
['Find'], ['Anchor'], ['Maximize']
];
break;
}基于usermode的代码很长,所以我想创建一个数组,并且只想分配如下所示的工具栏:
config.toolbar_MyTool = myToolArray;另外,我想检查自己的帖子或其他人的帖子。如果这是自己的帖子,我想添加一些额外的工具。
发布于 2013-02-02 18:20:34
首先,在config.js中定义不同的工具条
config.toolbar_MyToolUserMode1 = [
['Find', 'SelectAll'], ['Anchor'], ['Maximize']
];
config.toolbar_MyToolUserMode2 = [
['Find'], ['Anchor'], ['Maximize']
];然后可以在页面中使用这些工具栏定义,但请注意,一旦创建了CKEditor的实例,工具栏布局就不能更改:
CKEDITOR.config.toolbar = "MyToolUserMode1";
var instance = CKEDITOR.appendTo(parentElement);解决方案1:
您必须创建一个新实例来动态更改工具栏:
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变灰感到满意,那么以下可能是您的解决方案:
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中不需要配置
// 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');https://stackoverflow.com/questions/13699095
复制相似问题