为Fckeditor添加自定义工具栏按钮

之前给茶饭后的fckeditor编辑器做过一次添加自定义工具按钮,也有想把添加方法整理一下的念头,当时懒,以为添加一次就可以了,以后很少用到,没想到今天又用到了,之前怎么添加的忘的差不多,又去查资料,这次索性整理一个完整的添加方法以备后用。
我需要在工具栏添加一个用来向编辑区插入一条链接信息的按钮,具体可以看截图:

点击确定后,向编辑区插下如下代码:

手术开始,Fckeditor的下载地址,当前版本2.6.3。

需要修改的文件:

  1. fckeditor\fckconfig.js
  2. fckeditor\editor\lang\zh-cn.js
  3. fckeditor\editor\js\fckeditorcode_gecko.js
  4. fckeditor\editor\js\fckeditorcode_ie.js
  5. fckeditor\editor\skins\default\fck_strip.gif
  6. fckeditor\editor\_source\internals\fckcommands.js
  7. fckeditor\editor\_source\internals\fckregexlib.js
  8. fckeditor\editor\_source\internals\fcktoolbaritems.js

需要添加的文件:

  • fckeditor\editor\dialog\fck_playgame.htm
  1. 首先要给工具栏按钮起个名字,我这里起名叫PlayGame
    现在先来修改文件1.fckconfig.js,在文件的119行,有个叫Basic的工具栏定义,我在“关于”按钮的后面加入我的自定义按钮,修改完的代码如下:

    ['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About','PlayGame']
  2. 然后修改文件2.zh-cn.js,在文件的结尾处加入如下信息:(注意加入之后,先给最后一行DlgDivInlineStyle:”CSS 样式”的结尾加上号)
    PlayGame	: "本地游戏",
    PlayGameProp	: "本地游戏属性",
    DlgPlayGameWidth	: "宽度",
    DlgPlayGameHeight	: "高度",
    DlgPlayGameFileName	: "文件名",
    DlgPlayGameLinkTxt	: "链接文字",
    DlgPlayGameErrorWidth	: "游戏宽度不能为空",
    DlgPlayGameErrorHeight	: "游戏高度不能为空",
    DlgPlayGameErrorFileName	: "游戏文件名不能为空",
    DlgPlayGameErrorLinkTxt	: "链接文字不能为空"
  3. 然后是修改文件3.fckeditorcode_gecko.js和文件4.fckeditorcode_ie.js,两个文件的修改内容完全一样。
    • 查找InsertHorizontalRule,在后面加入|PlayGame
    • 查找default:if (FCKRegexLib,在前面加入如下代码,用于显示点击按钮后的浮动窗口,后三个参数分别是窗口对应的文件名,宽,高。
      case 'PlayGame':B=new FCKDialogCommand('PlayGame',FCKLang.PlayGame,'dialog/fck_playgame.htm',380,300);break;
    • 查找default:alert(FCKLang.UnknownToolbarItem,在前面加入如下代码,用于显示按钮样式,78的意思就是文件5.fck_strip.gif中对应的小图。
      case 'PlayGame':B = new FCKToolbarButton('PlayGame' , FCKLang.PlayGame,null,null,null,null,78);break;
    • 修改文件5.fck_strip.gif,把画布的高度向下增加16个像素,然后找个16像素的图标放进来,那么它对应的数字就是78了,如果你不确定而且有足够耐心,可以数一下,哈哈。
  4. 继续修改文件6.fckcommands.js,查找到 case ‘Undefined’ : oCommand = new FCKUndefinedCommand() ; break ;,在后面加入如下代码:
    case 'PlayGame'	: oCommand=new FCKDialogCommand('PlayGame',FCKLang.PlayGame,'dialog/fck_playgame.htm',380,300); break ;
  5. 文件7.fckregexlib.js,查找NamedCommands,同样在这一行的结尾InsertHorizontalRule后面加入|PlayGame
  6. 文件8.fcktoolbaritems.js,查找FCKLang.ShowBlocks, null, null, null, true, 72 ) ; break ;,在下一行加入如下代码:
    case 'PlayGame'		: oItem = new FCKToolbarButton( 'PlayGame'	, FCKLang.PlayGame, null, null, null, null, 78); break;
  7. 剩下最后一个文件fck_playgame.htm,内容较多,就不放进日志了,猛击这里下载

参考:
http://j2ee.blog.sohu.com/36813753.html
http://www.cnblogs.com/zss1100/archive/2007/08/06/786773.html

你可能还对下面的日志感兴趣:

相关标签: Development & Design and tagged , .

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>