互連網上最好的編輯器 FCKeditor

來源:互聯網
上載者:User

FCKeditor 2.0版終於出來了,之所以用“終於”這個詞,是因為在這一版本上加上了眾望所歸的FLASH插入功能。可以說在所有的線上編輯器中,FCKeditor是目前互連網上最好的編輯器,功能強大,支援多種瀏覽器,無平台限制,可以和多種WEB語言融合,多語言支援,開源等~~

對於一個全新的網站,FCKeditor就可以直接拿過來用了,不需要進行什麼修改。但是對於絕大多數的已有網站而言,FCKeditor的一些設定並不適合自己的使用,這篇文章旨在告訴你簡單的修改FCKeditor以方便您的網站的使用。

第一項工作就是對這個功能宏大的編輯器進行精簡,當然是檔案精簡而非功能精簡化。在這裡我以asp版的FCKeditor為例進行,進入到FCKeditor 2.0檔案夾下,先把以“_”為開頭的檔案夾統統刪除,這些檔案夾裡放的是範例或是一些其它工具。其實也就是只保留editor檔案夾、fckconfig.js、fckeditor.asp、fckeditor.js、fckstyles.xml、fcktemplates.xml就可以了,最外層的精簡化完畢,進入到editor檔案夾內,先把“_source”檔案夾刪除,這裡是一些源檔案,對於使用來說沒什麼用處。

進入images檔案夾,刪除smiley檔案夾,些檔案是放表情表徵圖的,由於接下來我會用我自己的表情表徵圖,先把他們的刪除,當然,如果你想用這裡的表情表徵圖那就不要刪掉了。退出 images再進入lang檔案夾內,這裡的東西可以來個大清洗了,只保留fcklanguagemanager.js、zh-cn.js、en.js、zh.js這四個檔案,第一個檔案是語言設定檔,有了它才能和fckconfig.js裡的設定成對對應上相應的語言檔案,zh-cn.js是簡體中文語言套件,en.js就不用說了吧,zh.js是繁體中文的。怎麼樣?一下子少了幾百K,爽吧~

再退出lang檔案夾,進入skin檔案夾,如果你想使用fckeditor預設的這種奶黃色,那就把除了default檔案夾外的另兩個檔案夾直接刪除,如果想用別的,那就自己考慮了,不過我給你個建議,如果不想用預設的,那就選那個silver,因為銀色也就是灰色和任何顏色配起來都不會難看,而那個office2003的皮膚,反正我是非常不喜歡的,並且圖片相對也比較大,又增加了下載時間,不要!

精簡的最後一步,退出skin檔案夾,再進入filemanager,如果你用的不是最新版的fckeditor的話,那這裡就一個檔案夾browser,新版的還有一個upload檔案夾。一個個來,先進入到filemanager/browser/default/connectors/下,因為我是用的asp的,所以除asp檔案夾外,全部刪除。然後再進入filemanager/upload/下,同樣,只留asp檔案夾,至此,編輯器的精簡化已經結束了,接下來,我們對編輯器進行設定修改。

--------------------------------------------------------------------------------

第一個修改的檔案,也就是fckeditor總設定檔,位於根目錄下的fckconfig.js檔案。請根據下面的列表進行(以fckeditor 2.0版的為準):

找到第20行 FCKConfig.DefaultLanguage = 'en' ;改為 FCKConfig.DefaultLanguage = 'zh-cn' ;設定預設語言為簡體中文
找到第40行 FCKConfig.TabSpaces = 0 ; 改為FCKConfig.TabSpaces = 1 ; 即在編輯器域內可以使用Tab鍵。

如果你的編輯器還用在網站前台的話,比如說用於留言本或是日記回複時,那就不得不考慮安全了,在前台千萬不要使用Default的toolbar,要麼自訂一下功能,要麼就用系統已經定義好的Basic,也就是基本的toolbar,
找到第64行 FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-',/*'Link',*/'Unlink','-','Style','FontSize','TextColor','BGColor','-','Smiley','SpecialChar','Replace','Preview']
] ;
這是我改過的Basic,把映像功能去掉,把添加連結功能去掉,因為映像和連結和flash和映像按鈕添加功能都能讓前台頁直接存取和上傳檔案,要是這兒不改直接給你上傳個木馬還不馬上玩完?但是光這樣還不行,fckeditor還支援編輯域內的滑鼠右鍵功能。
找到第73行
FCKConfig.ContextMenu = ['Generic',/*'Link',*/'Anchor',/*'Image',*/'Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField',/*'ImageButton',*/'Button','BulletedList','NumberedList','TableCell','Table','Form'] ;

這也是我改過的把滑鼠右鍵的“連結、映像,FLASH,映像按鈕”功能都去掉。

找到 第77行 FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
加上幾種我們常用的字型 FCKConfig.FontNames = '宋體;黑體;隸書;楷體_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;

接下來就設定上傳功能了,還是以ASP為例,其實fck預設的就是asp的,把100行以下的所有被注釋掉的代碼全部刪掉就行,然後再把下面所有有關於browser.html和upload.asp的後面的?Type=XX都改成Type=YY,其中YY為你想儲存檔案的檔案夾名稱。

而如果你還想用自己的表情表徵圖的話,那跳到131行,改掉那個表情表徵圖的檔案夾地址,以及下面的表情表徵圖的檔案名稱,再下面那三個數字是每行顯示表情數及快顯視窗的寬和高了,這個的大小要根據您的表情表徵圖排列的視窗的大小而定了。OK,總設定檔修改結束。

--------------------------------------------------------------------------------

接下來是編輯器位置的設定,我的習慣是把editor放在根目錄下,最開始所述的五個檔案也放在根目錄下(Tips:建議放在根目錄下,並且建議使用時設定路徑也採用絕對路徑,如"/fckeditor/",而我的習慣的設定是"/"),這樣有利於fckeditor的更新升級,並且網站下所有檔案夾都可以任意調用,不存在其它檔案夾名變了而其它地方就無法使用編輯器的問題。

開啟fckeditor.asp檔案,找到 sBasePath = "/fckeditor/"改為 sBasePath = "/"
開啟fckeditor.js檔案,找到 this.BasePath = '/fckeditor/' ;改為 this.BasePath = '/' ;

編輯器域內預設的顯示字型為12px,而我的首頁預設字型為14px,所以看著就很不舒服,想要修改可以通過修改樣式表來達到要求,開啟/editor/css/fck_editorarea.css,把第4行改為 font-size: 14px;即可。

接下來就是上傳檔案的設定了,這個比較麻煩,請仔細操作。

開啟/editor/filemanager/browser/default/frmresourcetype.html,找到第15行,插入“ ['uploadfile','uploadfile'],”配合上剛才在fckconfig.js裡的設定,那麼我的上傳檔案路徑就是/uploadfile,當然你也可以改成你想要的檔案夾,但這裡的名稱一定要和fckconfig.js裡的那個“Type=YY”裡的YY一致才行。

還沒完,繼續進入到editor/filemanager/browser/default/connectors/asp,開啟config.asp,先把ConfigIsEnabled = False改成為ConfigIsEnabled = True,要不是沒法上傳檔案的,再把ConfigUserFilesPath = "/UserFile"改成我想要的ConfigUserFilesPath = "/"。
接著在“Set ConfigDeniedExtensions = CreateObject( "Scripting.Dictionary" )”後面加入
ConfigAllowedExtensions.Add "uploadfile", ""
ConfigDeniedExtensions.Add "uploadfile", ""

同理,這裡的設定也是要和上面以及fckconfig.js裡面對應的。

還有一個上傳,就是快速上傳,這個功能是在fckeditor 2.0裡才有的,以前的版本沒這個功能。進入/editor/filemanager/upload/asp,同樣開啟config.asp,也同樣的把ConfigIsEnabled = False 設定成 ConfigIsEnabled = True,我這裡把ConfigUserFilesPath = "/UserFiles/"改成我想要的 ConfigUserFilesPath = "/uploadfile/"& Year(Date()) &"-"& Month(Date()) &"/",因為我的上傳檔案是放在uploadfile檔案夾下,並且是按月分開放置的。快速上傳,不會讓你選擇檔案夾,而是通過這裡的設定直接上傳的,這兒設定如果和前面的設定配合不好的話,你的檔案就會被上傳得亂七八糟,很不方便管理。接前重複前一個config.asp裡的操作,在後面加上

ConfigAllowedExtensions.Add "uploadfile", ""
ConfigDeniedExtensions.Add "uploadfile", ""

--------------------------------------------------------------------------------

接下來呢,就講一下如何建立自己的線上編輯器,這裡以ASP和JS版的為例,ASP版範例程式碼,一般用於後台操作:

<%
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
oFCKeditor.BasePath = "/"

oFCKeditor.ToolbarSet = "Default"
oFCKeditor.Width = "100%"
oFCKeditor.Height = "400"

oFCKeditor.Value = rs("logbody")
oFCKeditor.Create "logbody"
%>

ASP版的,當然只能用在以.asp為副檔名的頁面中,如果你在前在fckedito.asp裡設定過BasePath為"/"的話,這裡就可以省掉第三行,ASP版的只有一個Create函數。建議在修改一篇內容時用ASP版的。

接下來看JS版的:

<script type="text/javascript">
var oFCKeditor = new FCKeditor( 'logbody' ) ;
oFCKeditor.BasePath = '/' ;
oFCKeditor.ToolbarSet = 'Basic' ;
oFCKeditor.Width = '100%' ;
oFCKeditor.Height = '400' ;
oFCKeditor.Value = '' ;
oFCKeditor.Create() ;
</script>

BasePath的設定同上所述,JS版的可用於任何網頁中,甚至用於html頁面,因為其是用戶端產生的,這樣的好處就是一可以減小網路流量,因為編輯器檔案只需下載一次,二是可以由用戶端定義什麼時候顯示,由於fckeditor初始化需要一定時間,在這一點上JS就很有作用了。

另外,JS版的還有一個功能函數就是ReplaceTextarea()函數,可以替換指定的TextArea,拿我的網站的日誌的回複部分樣本:

<script type="text/javascript">
<!--
function showFCK(){
var oFCKeditor = new FCKeditor( 'fbContent' ) ;
oFCKeditor.BasePath = '/' ;
oFCKeditor.ToolbarSet = 'Basic' ;
oFCKeditor.Width = '100%' ;
oFCKeditor.Height = '200' ;
oFCKeditor.Value = '' ;
//oFCKeditor.Create() ;
oFCKeditor.ReplaceTextarea() ;
//document.blog_feedback.blogsubmit.disabled = '';
document.blog_feedback.blogsubmit.style.display = '';
document.blog_feedback.openFCK.disabled = 'true';
document.blog_feedback.openFCK.style.display = 'none';
}
//-->
</script>

把其寫成一個簡單的函數,當使用者顯示開啟編輯器時才產生這個fckeditor,不用每次重新整理頁面都去初始化一個編輯器,頁面的速度就會快多了。

--------------------------------------------------------------------------------

補遺:前面講到了,說是在編輯已有資料內容時不要用JS版的,那是因為單引號(')的問題造成的,在資料內容裡難免會有單引號存在而用JS版產生編輯器時可能就會因為單引號問題,而使編輯器無法正常產生,而採用asp則不同,用ASP版本的是因為資料被當成是一個變數了,然後直接賦值給編輯器域。還有就是除非你要用ReplaceTextArea()方法來產生編輯器,否則你不需先寫一個<textarea>這樣的標籤,一切都會由fckeditor自動產生的,你所需做的只是給fckeditor指定一個執行個體名。同時你也不用擔心如何提交,在表單提交的時候,fckeditor會自動認可,提交的變數名是以你指定的fckeditor執行個體命名的。

參考資料:http://3rgb.com/b/?act=viewthread&category=&threadid=316&Page=1

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.