最近项目需要对已有的FCKeditor添加新的功能,以前的做法只是在外壳处再次封装,这次看样子要进行全面改造了。
需要修改的文件:
fckconfig.js
zh-cn.js
fckeditorcode_gecko.js || fckeditorcode_ie.js(这里针对gecko的浏览器,ie的相同)
Step 1:在Toolbar中添加功能按钮
fckconfig.js:FCKConfig.ToolbarSets[“Basic”] 中添加按钮名称
FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','About', 'CutPage']
] ;
Step 2:为按钮添加中文名称
zh-cn.js:为你的按钮起个名字
CutPage : “插入分页代码”
Step 3:在Toolbar中显示该按钮
fckeditorcode_gecko.js:(这个JS的代码经过压缩,可以使用工具格式化再进行修改)
查找:
case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;
在break后插入你的代码
case 'CutPage':B=new FCKToolbarButton('CutPage',FCKLang.CutPage,null,null,false,true,43);
这样就可以在Toolbar中显示你的按钮了
Step 4:定义按钮功能原型
ckeditorcode_gecko.js:
查找:
var FCKNewPageCommand=function(){this.Name='NewPage';};
FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};
FCKNewPageCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};
FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};
FCKNewPageCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};
定义功能原型:(这里直接复NewPage的实现代码,可修改成自已的)
var FCKCutPageCommand=function(){this.Name='CutPage';};FCKCutPageCommand.prototype.Execute=function(){var e=FCK.EditorDocument.createElement('');e.innerHTML='{nextpage}';FCK.InsertElement(e);};FCKCutPageCommand.prototype.GetState=function(){return 0;};
将上面代码搜入到查找内容之后。
Step 5:按钮功能实例化:
ckeditorcode_gecko.js:
查找:
case 'NewPage':B=new FCKNewPageCommand();break;
功能实例化:
case 'CutPage':B=new FCKCutPageCommand();break;
将上面代码搜入到查找内容之后。
OK,这样就可以在为FCKeditor加上自定义的按钮了。