JAVA流通橋

          JAVA啟發者

          統計

          留言簿(3)

          AJAX相關網址

          Eclipse相關網址

          Hibernate

          java相關網址

          LINUX相關網址

          webwork相關網址

          友好鏈接

          閱讀排行榜

          評論排行榜

          實戰FCKeditor,添加自定義工具欄---插入代碼(一)

          打開fckeditor下的fckconfig.js文件,找到FCKConfig.ToolbarSets["Default"]和FCKConfig.ContextMenu 在他們后面加上”InsertCode”,這個當然是自己要添加的工具欄的名字了。然后,我們在“fckeditor\editor\lang\”文件夾下找到zh-cn.js,在最后一行后面加上以下2句:
          //自定義

          InsertCode:"插入代碼",

          InsertCodeProp:"插入代碼屬性"

          注意在這2句前DlgAboutInfo      : "要獲得更多信息請訪問 "后面加個逗號。當然,還可以同樣方法修改其他語言js文件,我就修改了繁體的zh.js和英文的en.js

           

              現在,我們已經定義了工具欄,開始第二大步,打開“fckeditor\editor\js\”下的fckeditorcode_gecko.js和fckeditorcode_ie.js,我們開始注冊工具欄;

          第一步:在2個文件中搜索“InsertHorizontalRule”,在后面加上“InsertCode”。

          第二步:同樣在2個文件中搜索“default:if (FCKRegexLib”,在“default”之前加上這么一句:

          Case 'InsertCode':B = new FCKDialogCommand('InsertCode' , FCKLang.InsertCode ,'dialog/InsertCode/InsertCode.htm',510,450);break;

          這句話意思就是,點擊工具欄圖標時打開InsertCode.htm文件,定義了高和寬,至于文件內容我們之后再說。

          第三步:還是在這2個文件,搜索“default:alert(FCKLang.UnknownToolbarItem”,在“default”之前加上下面一句:

          case 'InsertCode':B = new FCKToolbarButton('InsertCode' , FCKLang.InsertCode,null,null,null,null,67);

                  這句話意思是定義了工具欄的圖標,FCKeditor的默認圖標文件是“fckeditor\editor\skins\default\”下的fck_strip.gif圖片,本人由于不想用重復的默認圖標,因此加了一個小圖片:

          (20*20)

          默認圖片是16*2056,用PS把畫布加長到16*2072,再把自己的小圖片放到最下面,這樣,自定義的圖片剛好排67位。以后加新功能還可以依次增加此圖片。


          好了。經過這么3步,我們已經把自定義工具欄加上去了。(在about之后,如果想加在中間,可以在剛才的第二和第三步里把添加的語句加到相應的Case前面。)

           

              做了這么多,任務算完成1/3,加油!

          下面我們開始定義“InsertCode.htm”文件:

              在“fckeditor\editor\dialog\”下新增InsertCode文件夾,新建HTM文件InsertCode.htm,里面代碼先拷貝“fckeditor\editor\dialog\fck_textfield.html”文件,好了,,大手術開始:

           

              首先,在“<title></title>”中加上“Insert Code Properties”,這個是打開的新窗體的標題;更改FCKeditor的JS文件“common/fck_dialog_common.js”的引用為“../common/fck_dialog_common.js”,再加上雙魚編輯器里的插入代碼腳本“<script src="code.js" type="text/javascript"></script>”。

          然后更改“window.onload = function()”函數,把里面的if  {}  else{}刪除掉,再把function Ok()里的代碼全部刪除,加上下面2句:

          oEditor.FCK.InsertHtml(code()) ;

              window.parent.Cancel() ;

          因為我們是更改成代碼格式的字符串加到FCKeditor編輯器里,所以用到內置的InsertHtml函數,code()函數傳過來的是字符串;至于下面的html代碼,就更改為雙魚編輯器里InsertCode.htm的代碼(這里就不提供了,本人把更改好的放上來,這里只做個簡單說明)。

              下面我們修改“code.js”文件里的代碼,把“function code()”里的

          window.returnValue = FormateCode(str,language,showLine,canCollapse,canAllCollapse,allRegion);

          window.close();

          這兩句更改為一句:

          return FormateCode(str,language,showLine,canCollapse,canAllCollapse,allRegion);

           

          好了,至此,就可以使用插入代碼功能了。(添加其他功能的時候到這一步就可以完成了。)

          完成后的編輯器圖片:
           


          看見最后一個圖片沒,這就是了,點擊后出現的圖形為:

           

           

           

          嘿,興沖沖地試了下,誒呀,怎么代碼前這么多紅XX呢?看下源代碼,原來里面的折疊圖片路徑全是錯的,這下郁悶了,試了N種方法,都沒用。無奈,最后查看FCKeditor中其他的htm文件,發現個東東:FCKConfig.BasePath,作用是取得editor文件夾的相對路徑,例如我的例子就是:“/AJAXEnabledWebSite1/FCKeditor/editor/”。好了,那現在為了得到我們存放折疊圖片的文件夾路徑,我們現在要定義一個變量,打開fckconfig.js文件,在文件最后一行之后加上這么一句:

          FCKConfig.CodePath  = FCKConfig.BasePath + 'dialog/InsertCode/codeimages/' ;

              有了圖片路徑之后,我們的繼續修改“code.js”文件:

          首先,在“function code()”前面加上下面3句:

          var oEditor = window.parent.InnerDialogLoaded() ;

          var FCKConfig = oEditor.FCKConfig ;

          var CodeImagePath   = FCKConfig.CodePath ;//得到圖片所在文件夾路徑

          搜索“PiscesTextEditor/codeimages/”,全部替換為“”(即,全部刪除。注意:是空,不是空格;)

          同樣搜索“PiscesTextEditor\/codeimages\/”,全部替換為“”

          替換好之后,我們就要用到上面的圖片所在文件夾路徑了,我們這里使用正則替換字符串。

          搜索“if (showLine) str = AddLineNumber(str);   ”,在它前面加上下面2句:

          var src = /\b(src=")\b/g;

              str = str.replace(src,'src="'+CodeImagePath);//得到正確路徑

          意思就是,把所有img控件的只有圖片名的src路徑替換為正確的相對路徑。

           

          原文標題:實戰FCKeditor,添加自定義工具欄---插入代碼 - EC80電子商務
          原文網址:http://ec80.cn/html/64/n-1664.html

          posted on 2008-03-10 18:49 朱巖 閱讀(896) 評論(0)  編輯  收藏 所屬分類: Fckeditor編輯器


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 武宣县| 观塘区| 岳阳县| 永丰县| 巴林左旗| 砀山县| 阿合奇县| 将乐县| 壶关县| 廉江市| 沽源县| 南皮县| 太和县| 商丘市| 修文县| 德格县| 乌什县| 襄汾县| 泽库县| 林口县| 哈尔滨市| 龙井市| 天台县| 南开区| 疏附县| 东阿县| 土默特左旗| 登封市| 社会| 烟台市| 麟游县| 鹤岗市| 同心县| 辽宁省| 龙川县| 弥勒县| 措勤县| 屏东县| 辽阳市| 虹口区| 临清市|