DIV CSS 佈局教程網

fckeditor配置方法
編輯:Dreamweaver入門     

如何安裝?
1.下載最新版的FCKEDITOR
2.解壓縮到你的站點根文件夾中名為FCKEDITOR的文件夾中(名稱必須為FCKEDITOR,因為配置文件中已經使用此名稱來標示出FCKEDITOR的位置)
3.現在,編輯器就可以使用了,如果想要查看演示,可以按下面方法訪問:
http:///FCKeditor/_samples/default.html

注意:你可以將FCKEDITOR放置到任何文件夾,默認情況下,將其放入到FCKEDITOR文件夾是最為簡單的方法.如果你放入的文件夾使用別的名稱,請修改配置文件夾中編輯器BasePath參數,如下所示:
oFckeditor.BasePath="/Components/fckeditor/";
另外,FCKEDITOR文件夾中所有以下劃線開頭的文件夾及文件,都是可選的,可以安全的從你的發布中刪除.它們並不是編輯器運行時必需的

如何將FCKEDITOR整合進我的頁面?
由於目前的版本提供的FCKEDITOR僅提供了JAVASCRIPT式的整合,因此,這裡僅講述如何應用JAVASCRIPT來整合FCKEDITOR到站點中,當然,其他各種語言的整合,你可以參考_samples文件夾中的例子來完成
1,假如編輯器已經安裝在你的站點的/FCKEDITOR/文件夾下.那麼,第一步我們需要做的就是在頁面的HEAD段中放入SCRIPT標記以引入JAVASCRIPT整合模塊.例如:
<script type="text/網頁特效" src="/fckeditor/fckeditor.js"></script>
其中路徑是可更改的
2,現在,FCKEDITOR類已經可以使用了.有兩個方法在頁面中建立一個FCKEDITOR編輯器:
方法1:內聯方式(建議使用):在頁面的FORM標記內需要插入編輯器的地方置入以下代碼:

script type="text/javascript">
var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
oFCKeditor.Create() ;
</script>
方法2:TEXTAREA標記替換法(不建議使用):在頁面的ONLOAD事件中,添加以下代碼以替換一個已經存在的TEXTAREA標記

<html>
<head>
<script type="text/javascript">
window.onload = function()
{
var oFCKeditor = new FCKeditor( 'MyTextarea' ) ;
oFCKeditor.ReplaceTextarea() ;
}
</script>
</head>
<body>
<textarea id="MyTextarea" name="MyTextarea">This is <b>the</b> initial value.</textarea>
</body>
</html>
3.現在,編輯器可以使用了

FCKEDITOR類參考:
下面是用來在頁面中建立編輯器的FCKEDITOR類的說明

構造器:
FCKeditor( instanceName[, width, height, toolbarSet, value] )
instanceName:編輯器的唯一名稱(相當於ID)
WIDTH:寬度
HEIGHT:高度
toolbarSet:工具條集合的名稱
value:編輯器初始化內容

屬性:
instanceName:編輯器實例名
width:寬度,默認值為100%
height:高度,默認值是200
ToolbarSet:工具集名稱,參考FCKCONFIG.JS,默認值是Default
value:初始化編輯器的HTML代碼,默認值為空
BasePath:編輯器的基路徑,默認為/Fckeditor/文件夾,注意,盡量不要使用相對路徑.最好能用相對於站點根路徑的表示方法,要以/結尾
CheckBrowser:是否在顯示編輯器前檢查浏覽器兼容性,默認為true
DisplayErrors:是否顯示提示錯誤,默為true;

集合:
Config[Key]=value;
這個集合用於更改配置中某一項的值,如
oFckeditor.Config["DefaultLanguage"]="pt-br";

方法:
Create()
建立並輸出編輯器

RepaceTextArea(TextAreaName)
用編輯器來替換對應的文本框

如何配置FCKEDITOR?
FCKEDITOR提供了一套用於定制其外觀,特性及行為的設置集.主配置文件名為Fckconfig.js
你既可以編輯主配置文件,也可以自己定義單獨的配置文件.配置文件使用JAVASCRIPT語法.

修改後,在建立編輯器時,可以使用以下語法:
var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
oFCKeditor.Config['CustomConfigurationsPath'] = '/myconfig.js' ;
oFCKeditor.Create() ;

提醒:當你修改配置後,請清空浏覽器緩存以查看效果

配置選項:
AutoDetectLanguage=true/false 自動檢測語言
BaseHref="" _fcksavedurl="""" 相對鏈接的基地址
ContentLangDirection="ltr/rtl" 默認文字方向
ContextMenu=字符串數組,右鍵菜單的內容
CustomConfigurationsPath="" 自定義配置文件路徑和名稱
Debug=true/false 是否開啟調試功能,這樣,當調用FCKDebug.Output()時,會在調試窗中輸出內容
DefaultLanguage="" 缺省語言
EditorAreaCss="" 編輯區的樣式表文件
EnableSourceXHTML=true/false 為TRUE時,當由可視化界面切換到代碼頁時,把HTML處理成XHTML
EnableXHTML=true/false 是否允許使用XHTML取代HTML
FillEmptyBlocks=true/false 使用這個功能,可以將空的塊級元素用空格來替代
FontColors="" 設置顯示顏色拾取器時文字顏色列表
FontFormats="" 設置顯示在文字格式列表中的命名
FontNames="" 字體列表中的字體名
FontSizes="" 字體大小中的字號列表
ForcePasteAsPlainText=true/false 強制粘貼為純文本
ForceSimpleAmpersand=true/false 是否不把&符號轉換為XML實體
FormatIndentator="" 當在源碼格式下縮進代碼使用的字符
FormatOutput=true/false 當輸出內容時是否自動格式化代碼
FormatSource=true/false 在切換到代碼視圖時是否自動格式化代碼
FullPage=true/false 是否允許編輯整個HTML文件,還是僅允許編輯BODY間的內容
GeckoUseSPAN=true/false 是否允許SPAN標記代替B,I,U標記
IeSpellDownloadUrl=""下載拼寫檢查器的網址
ImageBrowser=true/false 是否允許浏覽服務器功能
ImageBrowserURL="" 浏覽服務器時運行的URL
ImageBrowserWindowHeight="" 圖像浏覽器窗口高度
ImageBrowserWindowWidth="" 圖像浏覽器窗口寬度
LinkBrowser=true/false 是否允許在插入鏈接時浏覽服務器
LinkBrowserURL="" 插入鏈接時浏覽服務器的URL
LinkBrowserWindowHeight=""鏈接目標浏覽器窗口高度
LinkBrowserWindowWidth=""鏈接目標浏覽器窗口寬度
Plugins=object 注冊插件
PluginsPath="" 插件文件夾
ShowBorders=true/false 合並邊框
SkinPath="" 皮膚文件夾位置
SmileyColumns=12 圖符窗列數
SmileyImages=字符數組 圖符窗中圖片文件名數組
SmileyPath="" 圖符文件夾路徑
SmileyWindowHeight 圖符窗口高度
SmileyWindowWidth 圖符窗口寬度
SpellChecker="ieSpell/Spellerpages" 設置拼寫檢查器
StartupFocus=true/false 開啟時FOCUS到編輯器
StylesXmlPath="" 設置定義CSS樣式列表的XML文件的位置
TabSpaces=4 TAB鍵產生的空格字符數
ToolBarCanCollaps教程e=true/false 是否允許展開/折疊工具欄
ToolbarSets=object 允許使用TOOLBAR集合
ToolbarStartExpanded=true/false 開啟是TOOLBAR是否展開
UseBROnCarriageReturn=true/false 當回車時是產生BR標記還是P或者DIV標記
如何自定義樣式列表呢?
FCKEDITOR的樣式工具欄中提供了預定義的樣式,樣式是通過XML文件定義的,默認的XML樣式文件存在於FCkEditor根文件夾下的FckStyls.xml文件中
這個XML文件的結構分析如下:

<?xml version="1.0" encoding="utf-8" ?>
<Styles >
<Style name="My Image" element="img">
<Attribute name="style" value="padding: 5px" />
<Attribute name="border" value="2" />
</Style >
<Style name="Italic" element="em" />
<Style name="Title" element="span">
<Attribute name="class" value="Title" />
</Style >
<Style name="Title H3" element="h3" />
</Styles>每一個STYLE標記定義一種樣式,NAME是顯示在下拉列表中的樣式名,ELEMENT屬性指定此樣式所適用的對象,因為FCKEDITOR中的樣式是上下文敏感的,也就是說,選擇不同的對象,僅會顯示針對這類對象定義的樣式

拼寫檢查
FCKEDITOR帶了兩種拼寫檢查工具,一種是ieSpell,默認情況下使用這種,使用這種方式的拼寫檢查,要求客戶下載並安裝iespell這個小軟件,另外,也提供SpellPager的方式來進行拼寫檢查,不過,由於SPELLPAGER是由PHP編寫的服務器端腳本,因此,要求你的WEB服務器必須支持PHP腳本語言方可
更改拼寫檢查器的方式請參見有關配置文件的詳細說明

壓縮腳本
為了提供腳本載入的效率,FCKEDITOR采用以下方法對腳本盡量壓縮以減少腳本尺寸:
1,移除掉腳本中的注釋
2.移除掉腳本中所有無意義的空白
另外,FCKEDITOR還提供了一個專門用於壓縮腳本的工具以便 你在發布時能減小文件尺寸,
你可以將_Packager文件夾中的Fckeditor.Packager.exe復制到FCKEDITOR根文件夾來運行並壓縮腳本

本地化FCKEDITOR
如果FCKEDITOR沒有提供您所需要的語言(實際上全有了),你也可以自行制作新的語言
,你只需要復制出EN.JS,然後在其基礎上進行翻譯.另外,語言名稱與對應的腳本文件名必須遵循RFC 3066標准,但是,需要小寫,例如:Portuguess Language對應的腳本文件名必須為pt.js
如果需要針對某個國家的某種語系,則可以在語系縮寫後加上橫線及國家縮寫即可

在使用時,系統會自動偵測客戶端語系及國別而運用適當的界面語言.

當建立一種新的語言後,你必須在"Edit/lang/fcklanguagemanager.js"中為其建立一個條目,如下所示:

FCKLanguageManager.AvailableLanguages =
{

en : 'English',
pt : 'Portuguese'
}
需要提醒的是,文件必須保存為UTF-8格式

如何與服務器端腳本進行交互?
請查看例子以得到相關內容

另外,在ASP.NET中以以下步驟使用
1.把FCKEDITOR添中到工具箱
2.托拽FCKEDITOR控件到頁面
3.為其指定名稱
4.FCKEDITOR類的所有屬性不光可以在代碼中使用,而且可以作為FCKEDITOR控件的屬性直接使用,例如,要改變皮膚,可以在UI頁面中指定SkinPath="/fckeditor/editor/skins/office2003"即可,其實FCKEDITOR的ASP.NET版本可以做得更好,你可以找到FCKEDITOR ASP.NET 2.1的源文件,然後修改該控件的設計,為其暴露更多有用的屬性,重新編譯即可
5,POSTBACK後的數據,使用FCKEDITOR控件的value屬性獲得
6.由於默認狀態下,ASP.NET不允許提交含有HTML及JAVASCRIPT的內容,因此,你必須將使用FCKEDITOR的頁面的ValidateRequest設為false.(<%@page  validteRequest="false" %>即可)

 附:
一、如何設置上傳文件語言

把FCKeditor根目錄下面的fckconfig.js文件裡

var _FileBrowserLanguage     = 'asp教程' ;     // asp | aspx | cfm | lasso | perl | php教程 | py
var _QuickUploadLanguage     = 'asp' ;     // asp | aspx | cfm | lasso | php

這兩行中改成您所需要調用的編輯器語言,如用asp.net教程則改為aspx;

二、解決中文的問題:
在web.config中加入:
<globalization requestEncoding="GB2312" responseEncoding="GB2312"/>
這樣設置後可以顯示中文的文件,但URL地址也是中文的;
如果服務器對中文地址的解析不好,可能導致圖片無法浏覽;
所以修改:editorfilemanagerbrowserdefaultfrmresourceslist.html
中的OpenFile函數,把
window.top.opener.SetUrl( fileUrl ) ;
修改為:
window.top.opener.SetUrl( escape(fileUrl) ) ;

三.設置上傳的目錄:
1:在web.config中設置:
<appSettings>
     <add key="FCKeditor:UserFilesPath" value="/fck/UpLoad/" />
</appSettings>

2:在Session中設置:
在editorfilemanagerbrowserdefaultconnectorsaspxconnector.aspx中加入以下代碼:
<script runat="server" language="C#">
protected override void OnInit(EventArgs e)
{
   Session["FCKeditor:UserFilesPath"] = "/fck/UpLoad1/";
}
</script>

如何在asp.net中動態設置上傳圖片的路徑?

1.在javascript中修改FCKConfig.ImageBrowserURL的值,修改方式如下:
FCKConfig.ImageBrowserURL += "?Path=要上傳的文件路徑";
如:要把文件上傳到站點根目錄的UploadFile文件夾中,則設置為:
FCKConfig.ImageBrowserURL += "?Path=/UploadFile";
2.在"editorfilemanagerbrowserdefaultconnectorsaspxconnector.aspx"文件最後中增加以下程序:
<script runat="server" language="C#">
    protected override void OnInit(EventArgs e)
    {
if( Request.QueryString["Path"]==null ){
   Session["FCKeditor:UserFilesPath"] = "/UpLoadFiles/"; //設置默認值
}else{
   Session["FCKeditor:UserFilesPath"] = Request.QueryString["Path"];
}
    }
</script>


--------------------------------------------------------------------------------
多環境下的配置和使用技巧
--------------------------------------------------------------------------------

在fckeditor中添加右鍵菜單
現在網上介紹FCKEditor如何配置,如何精簡的例子非常之多,如有需要可以google一下,此處不必贅述。現在介紹一下,如何自定義此編輯器,暫包括如何添加工具條上的item,產生響應,添加右鍵菜單。IT SEEMS VERY EASY!

  閒言少敘,書歸正傳。
一、自定義右鍵菜單:
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,說明菜單有圖標,反之則無。在此,我指明了我所自定義的菜單是有圖標的,那麼我就應該把圖標放在editorskinsxxxtoolbar目錄下,其中xxx就是你在你的配置文件裡選擇的編輯器的皮膚,但是我們的圖標命名可是有學問的,必須是如FCKContextMenuItem構造函數(且這麼叫它)第二個字符串參數的小寫字母形式,如,這裡我的圖標被命名為first.gif了。 Ok,如此右鍵菜單就被添加上去了,運行你的網頁,看看FCKEditor是否奏效?如果不奏效的話就要重新參考此文喽^_^。
4、然後,還有最關鍵的一步:用editor下的fckeditor.original.html網頁的內容代替fckeditor.html的內容,同時不要忘記備份fckeditor.html文件!
5、現在開始討論步驟2中的FCKFirstCommand。菜單添加上其了,你總得讓丫擁有什麼功能吧?好,在editor/_source/commandclasses/fck_othercommands.js裡新建這個類:
四大 FCKeditor 實戰應用技巧

一般建立好類後,還要建立兩個靜態函數:xxx .prototype.Execute,xxx .prototype.GetState。前者是事件處理函數,即點擊了該右鍵菜單所要執行的功能全部寫在這個函數,後者返回菜單的狀態(可用?不可用?)。在此為了演示,我們實現一個最簡單的功能: FCKPageCommand.prototype.Execute = function(){ window.alert("It works!");}夠簡單吧,只是不疼不癢的彈出一個提示框。 當然,這裡我們也可以不用自定義的FCKFirstCommand,而直接用FCKEditor定義好的command,比如FCKDialogCommand,它也定義在fck_othercommands.js裡,當然如果這樣的話,彈出的會是一個dialog。 再次運行網頁,右擊,點擊你的自定義菜單,是否彈出提示框呢?

FCKeditor至今已經到了2.3.1版本了,對於國內的WEB開發者來說,也基本上都已經“聞風知多少”了,很多人將其融放到自己的項目中,更有很多大型的網站從中吃到了甜頭。今天開始,我將一點點的介紹自己在使用FCKeditor過程中總結的一些技巧,當然這些其實是FCK本來就有的,只是很多人用FCK的時候沒發現而已 :P

  1、適時打開編輯器

  很多時候,我們在打開頁面的時候不需要直接打開編輯器,而在用到的時候才打開,這樣一來有很好的用戶體驗,另一方面可以消除FCK在加載時對頁面打開速度的影響,如圖所示

  點擊“Open Editor"按鈕後才打開編輯器界面

  實現原理:使用JAVASCRIPT版的FCK,在頁面加載時(未打開FCK),創建一個隱藏的TextArea域,這個TextArea的name和ID要和創建的FCK實例名稱一致,然後點擊"Open Editor"按鈕時,通過調用一段函數,使用FCK的ReplaceTextarea()方法來創建FCKeditor,代碼如下

<script type="text/javascript">
      <!--
      function showFCK(){
       var oFCKeditor = new FCKeditor( 'fbContent' ) ;
       oFCKeditor.BasePath = '/FCKeditor/' ;
       oFCKeditor.ToolbarSet = 'Basic' ;
       oFCKeditor.Width = '100%' ;
       oFCKeditor.Height = '200' ;
       oFCKeditor.ReplaceTextarea() ;
      }
      //-->
      </script>
      <textarea name="fbContent" id="fbContent"><textarea>


2、使用FCKeditor 的 API

  FCKeditor編輯器,提供了非常豐富的API,用於給End User實現很多想要定制的功能,比如最基本的數據驗證,如何在提交的時候用JS判斷當前編輯器區域內是否有內容,FCK的API提供了GetLength()方法;

  再比如如何通過腳本向FCK裡插入內容,使用InsertHTML()等;

  還有,在用戶定制功能時,中間步驟可能要執行FCK的一些內嵌操作,那就用ExecuteCommand()方法。

  詳細的API列表,請查看FCKeditor的Wiki。而常用的API,請查看FCK壓縮包裡的_samples/html/sample08.html。此處就不貼代碼了。

3、外聯編輯條(多個編輯域共用一個編輯條)

  這個功能是2.3版本才開始提供的,以前版本的FCKeditor要在同一個頁面裡用多個編輯器的話,得一個個創建,現在有了這個外聯功能,就不用那麼麻煩了,只需要把工具條放在一個適當的位置,後面就可以無限制的創建編輯域了,如圖:

 

  要實現這種功能呢,需要先在頁面中定義一個工具條的容器:<divid="xToolbar"></div>,然後再根據這個容器的id屬性進行設置。

  ASP實現代碼:   <div id="fckToolBar"></div>
<%
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
with oFCKeditor
.BasePath = fckPath
.Config("ToolbarLocation") = "Out:fckToolBar"

.ToolbarSet = "Basic"
.Width = "100%"
.Height = "200"

.Value = ""
.Create "jcontent"

.Height = "150"
.Value = ""
.Create "jreach"
end with
%>


JAVASCRIPT實現代碼: <div id="xToolbar"></div>
FCKeditor 1:
<script type="text/javascript">
<!--
// Automatically calculates the editor base path based on the _samples directory.
// This is usefull only for these samples. A real application should use something like this:
// oFCKeditor.BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value.
var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_samples')) ;

var oFCKeditor = new FCKeditor( 'FCKeditor_1' ) ;
oFCKeditor.BasePath = sBasePath ;
oFCKeditor.Height = 100 ;
oFCKeditor.Config[ 'ToolbarLocation' ] = 'Out:parent(xToolbar)' ;
oFCKeditor.Value = 'This is some <strong>sample text</strong>. You are using FCKeditor.' ;
oFCKeditor.Create() ;
//-->
</script>
<br />
FCKeditor 2:
<script type="text/javascript">
<!--
oFCKeditor = new FCKeditor( 'FCKeditor_2' ) ;
oFCKeditor.BasePath = sBasePath ;
oFCKeditor.Height = 100 ;
oFCKeditor.Config[ 'ToolbarLocation' ] = 'Out:parent(xToolbar)' ;
oFCKeditor.Value = 'This is some <strong>sample text</strong>. You are using FCKeditor.' ;
oFCKeditor.Create() ;
//-->
</script>


此部分的詳細DEMO請參照:
_samples/html/sample11.html
_samples/html/sample11_frame.html

4、文件管理功能、文件上傳的權限問題

  一直以後FCKeditor的文件管理部分的安全是個值得注意,但很多人沒注意到的地方,雖然FCKeditor在各個Release版本中一直存在的一個功能就是對上傳文件類型進行過濾,但是她沒考慮過另一個問題:到底允許誰能上傳?到底誰能浏覽服務器文件?

  之前剛開始用FCKeditor時,我就出現過這個問題,還好NetRube(FCKeditor中文化以及FCKeditor ASP版上傳程序的作者)及時提醒了我,做法是去修改FCK上傳程序,在裡面進行權限判斷,並且再在fckconfig.js裡把相應的一些功能去掉。但隨之FCK版本的不斷升級,每升一次都要去改一次配置程序fckconfig.js,我發覺厭煩了,就沒什麼辦法能更好的控制這種配置麼?事實上,是有的。

  在fckconfig.js裡面,有關於是否打開上傳和浏覽服務器的設置,在創建FCKeditor時,通過程序來判斷是否創建有上傳浏覽功能的編輯器。首先,我先在fckconfig.js裡面把所有的上傳和浏覽設置全設為false,接著我使用的代碼如下:

  ASP版本: <%
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
with oFCKeditor
.BasePath = fckPath
.Config("ToolbarLocation") = "Out:fckToolBar"
if request.cookies(site_sn)("issuper")="yes" then
.Config("LinkBrowser") = "true"
.Config("ImageBrowser") = "true"
.Config("FlashBrowser") = "true"
.Config("LinkUpload") = "true"
.Config("ImageUpload") = "true"
.Config("FlashUpload") = "true"
end if
.ToolbarSet = "Basic"
.Width = "100%"
.Height = "200"
.Value = ""
.Create "jcontent"
%>


JAVASCRIPT版本:        var oFCKeditor = new FCKeditor( 'fbContent' ) ;
       <%if power = powercode then%>
       oFCKeditor.Config['LinkBrowser'] = true ;
       oFCKeditor.Config['ImageBrowser'] = true ;
       oFCKeditor.Config['FlashBrowser'] = true ;
       oFCKeditor.Config['LinkUpload'] = true ;
       oFCKeditor.Config['ImageUpload'] = true ;
       oFCKeditor.Config['FlashUpload'] = true ;
       <%end if%>
       oFCKeditor.ToolbarSet = 'Basic' ;
       oFCKeditor.Width = '100%' ;
       oFCKeditor.Height = '200' ;
       oFCKeditor.Value = '' ;
       oFCKeditor.Create() ;


 

FCKPageCommand.prototype.Execute = function()
{
               window.alert("It works!");
}


 

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved