閑言少敘,書歸正傳。
一、自定義右鍵菜單:
1、 首先,在editor/lang/zh-cn.js里添加你所要添加的工具條item的名字,此文件定義了一個FCKLang變量,仿照里邊的格式寫哦,如:First: "第一",注意,如果是不在倒數第二行(倒數第一行是“}”),后邊的這個逗號是一定要有的,不然網頁中不會出現編輯器,筆者曾經犯過如此低級的錯誤,待醒悟后,找一僻靜之所大嘴巴子招呼;呵呵,我們是中國人,自然在冒號后對應漢語,這也是將來在網頁中顯示的內容。
2、 之后,在editor/_source/internals/fckcommands.js 里新建一個command:case ‘First‘: oCommand = new FCKFirstCommand ( ‘First‘, FCKLang.First); break注意那個紅色字體的FCKFirstCommand了么?這個是一個自定義的command,稍候將討論它。
3、 然后,在editor/_source/internals/fckcontextmenu.js 添加一個context menu 。 在case ‘Generic‘ : 下面添加如下: oGroup.Add( new FCKContextMenuItem( this, ‘First‘, FCKLang.First, true ) ) ; 其中第四個布爾類型的參數,如果指定為true,說明菜單有圖標,反之則無。在此,我指明了我所自定義的菜單是有圖標的,那么我就應該把圖標放在editor\skins\xxx\toolbar目錄下,其中xxx就是你在你的配置文件里選擇的編輯器的皮膚,但是我們的圖標命名可是有學問的,必須是如FCKContextMenuItem構造函數(且這么叫它)第二個字符串參數的小寫字母形式,如,這里我的圖標被命名為first.gif了。 Ok,如此右鍵菜單就被添加上去了,運行你的網頁,看看FCKEditor是否奏效?如果不奏效的話就要重新參考此文嘍^_^。
4、然后,還有最關鍵的一步:用editor下的fckeditor.original.html網頁的內容代替fckeditor.html的內容,同時不要忘記備份fckeditor.html文件!
5、現在開始討論步驟2中的FCKFirstCommand。菜單添加上其了,你總得讓丫擁有什么功能吧?好,在editor/_source/commandclasses/fck_othercommands.js里新建這個類:
FCKPageCommand.prototype.Execute = function() { window.alert("It works!"); } |
一般建立好類后,還要建立兩個靜態(tài)函數:xxx .prototype.Execute,xxx .prototype.GetState。前者是事件處理函數,即點擊了該右鍵菜單所要執(zhí)行的功能全部寫在這個函數,后者返回菜單的狀態(tài)(可用?不可用?)。在此為了演示,我們實現一個最簡單的功能: FCKPageCommand.prototype.Execute = function(){ window.alert("It works!");}夠簡單吧,只是不疼不癢的彈出一個提示框。 當然,這里我們也可以不用自定義的FCKFirstCommand,而直接用FCKEditor定義好的command,比如FCKDialogCommand,它也定義在fck_othercommands.js里,當然如果這樣的話,彈出的會是一個dialog。 再次運行網頁,右擊,點擊你的自定義菜單,是否彈出提示框呢?