之前用的在線編輯器是DotNetTextBox ,并且曾一度覺得它異常強(qiáng)大,如可以給上傳的圖片加文字水印或者圖片水印,但后來發(fā)現(xiàn)其上傳的圖片不容易管理,都擠在一個(gè)文件夾里面(免費(fèi)版,付費(fèi)版好像可以分文件夾上傳保存圖片),并且段首空格總不是所見即所得,我編輯時(shí)空了兩個(gè)字符的位置,到了前臺(tái)頁面的時(shí)候只有一個(gè)字符,所以今天我再找了一款.Net的在線編輯器,技術(shù)群的黃昏推薦了FCKeditor,百度了一下,評價(jià)還不錯(cuò),而且開源,于是到其官網(wǎng)下載了最新的版本FCKeditor_2.6.3。這里需要注意一下,單下載FCKeditor_2.6.3.zip并不能應(yīng)用.Net環(huán)境,還需要下載另外一個(gè)文件FCKeditor.Net_2.6.3.zip。官網(wǎng)下載地址:
http://www./。
   下面講講FCKeditor.Net編輯器在.net環(huán)境的配置方法。
   第一步:解壓縮FCKeditor_2.6.3.zip文件,并將解壓縮得到的fckeditor文件夾復(fù)制到你想使用這個(gè)編輯器的網(wǎng)站的根目錄下面。
   第二步:把下載的FCKeditor.Net.zip隨便解壓縮到你硬盤的一個(gè)空目錄,里面是FCKeditor.Net的源代碼,可以對它進(jìn)行再度開發(fā),我這里講直接應(yīng)用,我們要使用到是其目錄下的\bin\Debug目錄中的FredCK.FCKeditorV2.dll文件。在你的網(wǎng)站里面把這個(gè)FredCK.FCKeditorV2.dll添加到bin目錄下。
   第三步:進(jìn)入FCKeditor文件夾,編輯 fckconfig.js 文件,如下:
 
1、指定編輯器應(yīng)用的編程環(huán)境,修改
var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | lasso | php
改為
var _FileBrowserLanguage = 'aspx' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'aspx' ; // asp | aspx | cfm | lasso | php
2、配置語言包。有英文、繁體中文等,這里我們使用簡體中文。
修改
FCKConfig.DefaultLanguage = 'en' ;
為
FCKConfig.DefaultLanguage = 'zh-cn' ;
3、配置皮膚。有default、office2003、silver風(fēng)格等,這里我們可以使用默認(rèn)。
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;
4、在編輯器域內(nèi)可以使用Tab鍵。(1為是,0為否)
FCKConfig.TabSpaces = 0 ; 改為FCKConfig.TabSpaces = 1 ;
5、加上幾種我們常用的字體的方法,例如:
修改
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'
6、編輯器域內(nèi)默認(rèn)的顯示字體為12px,想要修改可以通過修改樣式表來達(dá)到要求,打開/editor/css/fck_editorarea.css,修改font-size屬性即可。如font-size: 14px;
7、關(guān)于安全性。
如果你的編輯器用在網(wǎng)站前臺(tái)的話,那就不得不考慮安全了,在前臺(tái)千萬不要使用Default的toolbar,要么自定義一下功能,要么就用系統(tǒng)已經(jīng)定義好的Basic,也就是基本的toolbar,
修改
FCKConfig.ToolbarSets["Basic"] = [
    ['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
為
FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-','Unlink','-','Style','FontSize','TextColor','BGColor','-','Smiley','SpecialChar','Replace','Preview']
] ;
   第四步:在Web.Config文件里面添加,如下所示
1、配置WebConfig,在<appSettings>節(jié)點(diǎn)添加,如下所示:
如果你用的是默認(rèn)的上傳功能,則
    <add key="FCKeditor:BasePath" value="~/fckeditor/"/>
    <add key="FCKeditor:UserFilesPath" value="/網(wǎng)站名稱/UploadFiles/"/>
第五步:在頁面里應(yīng)用FCKeditor編輯器
<%@ Page Language="C#" AutoEventWireup="true"   CodeFile="Default.aspx.cs" Inherits="_Default" validateRequest="false" %>
<%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>
// 這里要主要兩個(gè)參數(shù)
// 默認(rèn)為<%@ Page Language="C#" AutoEventWireup="true"   CodeFile="Default.aspx.cs" Inherits="_Default" %>
// 我們要添加一個(gè)參數(shù) validateRequest=false,否則提交帶html代碼的內(nèi)容會(huì)報(bào)錯(cuò)
// 從客戶端(...)中檢測到有潛在危險(xiǎn)的 Request.Form 值。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www./1999/xhtml" >
<head runat="server">
    <title>無標(biāo)題頁</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <FCKeditorV2:FCKeditor ID="FCKeditor1" runat="server">
        </FCKeditorV2:FCKeditor>
         </div>
    </form>
</body>
</html>
如何獲取其內(nèi)容呢?讀取FCKeditor1控件的Value屬性值即可。
到這里基本OK了,但是我發(fā)現(xiàn)在使用圖片上傳功能的時(shí)候,會(huì)彈出一個(gè)阻止框,顯示"this connector is disabled Please check the"editor/filemanager/connectors/aspx/config.aspx",解決這個(gè)錯(cuò)誤的方法是打開editor/filemanager/connectors/aspx/config.ascx修改CheckAuthentication()方法,返回true
C# code
private bool CheckAuthentication()
{
// WARNING : DO NOT simply return "true". By doing so, you are allowing
// "anyone" to upload and list the files in your server. You must implement
// some kind of session validation here. Even something very simple as...
//
//        return ( Session[ "IsAuthorized" ] != null && (bool)Session[ "IsAuthorized" ] == true );
//
// ... where Session[ "IsAuthorized" ] is set to "true" as soon as the
// user logs in your system.
        return true;
}