Dynamic 动态编辑器工具栏
我想根据用户类型和某些条件设置ckeditor工具栏 我做的部分工作如下:Dynamic 动态编辑器工具栏,dynamic,ckeditor,config,toolbox,Dynamic,Ckeditor,Config,Toolbox,我想根据用户类型和某些条件设置ckeditor工具栏 我做的部分工作如下: switch(UserMode) { case "1": config.toolbar_MyTool = [ ['Find', 'SelectAll'], ['Anchor'], ['Maximize'] ]; break; case "2": config.toolbar_MyTool = [
switch(UserMode)
{
case "1":
config.toolbar_MyTool = [
['Find', 'SelectAll'], ['Anchor'], ['Maximize']
];
break;
case "2":
config.toolbar_MyTool = [
['Find'], ['Anchor'], ['Maximize']
];
break;
}
config.toolbar_MyTool = myToolArray;
基于usermode,代码很长
所以我想创建一个数组,只想分配工具栏
如下所示:
switch(UserMode)
{
case "1":
config.toolbar_MyTool = [
['Find', 'SelectAll'], ['Anchor'], ['Maximize']
];
break;
case "2":
config.toolbar_MyTool = [
['Find'], ['Anchor'], ['Maximize']
];
break;
}
config.toolbar_MyTool = myToolArray;
我还想查看自己的帖子或其他人的帖子。如果是我自己的帖子,我想另外添加一些工具。您可以从在config.js中定义不同的工具栏开始
config.toolbar_MyToolUserMode1 = [
['Find', 'SelectAll'], ['Anchor'], ['Maximize']
];
config.toolbar_MyToolUserMode2 = [
['Find'], ['Anchor'], ['Maximize']
];
// 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');
这些工具栏定义随后可以在页面中使用,但请注意,一旦创建了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:
但是,如果您对在用户模式2中显示完整工具栏并将SelectAll按钮变灰感到满意,则以下可能是您的解决方案:
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中不需要配置
config.toolbar_MyToolUserMode1 = [
['Find', 'SelectAll'], ['Anchor'], ['Maximize']
];
config.toolbar_MyToolUserMode2 = [
['Find'], ['Anchor'], ['Maximize']
];
// 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');
首先在config.js中定义不同的工具栏
config.toolbar_MyToolUserMode1 = [
['Find', 'SelectAll'], ['Anchor'], ['Maximize']
];
config.toolbar_MyToolUserMode2 = [
['Find'], ['Anchor'], ['Maximize']
];
// 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');
这些工具栏定义随后可以在页面中使用,但请注意,一旦创建了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:
但是,如果您对在用户模式2中显示完整工具栏并将SelectAll按钮变灰感到满意,则以下可能是您的解决方案:
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中不需要配置
config.toolbar_MyToolUserMode1 = [
['Find', 'SelectAll'], ['Anchor'], ['Maximize']
];
config.toolbar_MyToolUserMode2 = [
['Find'], ['Anchor'], ['Maximize']
];
// 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');
但是我需要一个数组。push('Find');toolbarray.push('selectAll');config.toolbar=toolbarray;有可能吗?@RGA根据您的问题添加了解决方案3,但我需要像下面这样的工具栏数组。push('Find');toolbarray.push('selectAll');config.toolbar=toolbarray;有可能吗?@RGA根据您的问题添加了解决方案3。您能告诉我如何获得的UserMode config.js吗ckeditor@Archana这是我的本地变量你能告诉我你是如何得到的UserMode config.js吗ckeditor@Archana这是我的局部变量