FCKeditor是一款非常流行的WEB可視化編輯器,其程序的的成熟度也非常高、功能豐富,但是再豐富也無(wú)法完全滿(mǎn)足我們的實(shí)際要求,有時(shí)我們還是需要增加一些自己的功能。但FCKeditor的程序結構還是比較復雜的,對JS不是很了解的人很難對其靈活定制,本文就如何為FCKeditor的工具條增加一個(gè)打開(kāi)我的像冊的自定義按鈕做一介紹。
先看看效果:
增加按鈕有以下幾步:
1、為按鈕增加圖片:
FCK的所有按鈕圖片是存放在一個(gè)圖片文件里的,這一點(diǎn)比較獨特,文件存放在相應皮膚目錄下,如:/FCK/skins/silever/fck_strip.gif。通過(guò)Fireworks或Phtoshop打開(kāi)該文件可以發(fā)現一個(gè)很長(cháng)的圖片,里面包含所有按鈕的圖片,現在您可以在該圖片的最下面增加您自定義的按鈕,注意,每個(gè)按鈕的尺寸是16*16px。
2、為按鈕增加功能代碼:
增加按鈕需要對FCK/editor/js目錄中的兩個(gè)核心文件進(jìn)行修改:fckeditorcode_gecko.js和fckeditorcode_ie.js,前者是使用于gecko核心的瀏覽器如Firefox等,而后者應用于以IE為核心的瀏覽器如MyIE(傲游)等,這兩個(gè)文件大體是相似的,僅有微小差別,在此我們基本無(wú)須擔心。
修改的方法非常簡(jiǎn)單,基本是一個(gè)照葫蘆畫(huà)瓢的過(guò)程,首先我們找一個(gè)與我們將要添加的按鈕功能相似的一個(gè)按鈕,這里我們選擇了Newpage,這是一個(gè)清空編輯器以備新建一個(gè)文件的按鈕。首先我們修改fckeditorcode_ie.js,fckeditorcode_gecko.js直接復制更改的代碼就可以了。
打開(kāi)fckeditorcode_ie.js,這里需要說(shuō)明的是,fckeditorcode_ie.js是多個(gè)文件合并經(jīng)過(guò)代碼優(yōu)化的(即去掉了大部分換行、空格、注釋等)不是很容易閱讀,而且這樣一百多K的JS文件用Dreamweaver、ZDE等工具打開(kāi)后CPU立刻升至100%,相信計算機就變成癡呆一樣了,經(jīng)過(guò)一翻比較,發(fā)現曾被我認為一文不值的Golive竟然可以輕松打開(kāi)該文件并快速編輯!不管你用什么軟件反正能打開(kāi)并編輯就行了。以關(guān)鍵詞Newpage進(jìn)行查找,你會(huì )發(fā)現一個(gè)按鈕的功能定義分三大部分:
A、功能原型
// 按鈕功能原型
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;};
var FCKMyAlbumCommand=function(){this.Name='DISPLAY: none';};
FCKMyAlbumCommand.prototype.Execute=function(){if(typeof(parent.showMyAlbum)=="function"){parent.showMyAlbum(FCK);}else{alert(FCKLang.NoAlbum);}};
FCKMyAlbumCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};
B、功能的實(shí)例化
case 'NewPage':B=new FCKNewPageCommand();break;
case 'MyAlbum':B=new FCKMyAlbumCommand();break;
C、按鈕的顯示
case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;
case 'MyAlbum':B=new FCKToolbarButton('MyAlbum',FCKLang.MyAlbum,null,null,true,null,67);break;
上面代碼中第一部分是Newpage的原代碼,后一部分是我們自定義的代碼,您一看應該明白怎么回事了吧??jì)H紅色部分和名稱(chēng)不同而已!而紅色部分就是我們的自定義功能。
FCKLang是語(yǔ)言包對象,您只要打開(kāi)FCK/editor/lang/下面的相應語(yǔ)言包添加相應的名稱(chēng)屬性就可以了,比如:MyAlbum打開(kāi)我的像冊。注意大小寫(xiě)!至此我們的添加工作已完成。