999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FCKeditor多在線文本編輯器的設(shè)計(jì)

2008-12-31 00:00:00饒永生
電腦知識與技術(shù) 2008年24期

摘要:文章介紹了基于FCKeditor能自動(dòng)隱藏的在線文本編輯器的設(shè)計(jì)原理,并提供相關(guān)的主要代碼。該方法簡單有效,代碼可移植性非常好,用戶也可方便地根據(jù)不同需求做相應(yīng)的修改?;谶@種設(shè)計(jì)原理,對于其他的在線編輯器也可進(jìn)行相似的設(shè)計(jì)。

關(guān)鍵詞:在線文本編輯器;FCKeditor;自動(dòng)隱藏

中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)24-1198-02

The Design of Multiply Text Editor for Internet Based on FCKeditor

RAO Yong-sheng1, WANG Ying2

(1.Institute of Educational Software, Guangzhou University, Guangzhou 510006, China; 2.South China Institute of Software Engineering, Guangzhou 510006, China)

Abstract: This article introduces the design theory of auto-hide about the editor for internet based on FCKeditor. And give the primary codes which make the online editor be auto-hiding. This method is simply, effective, and with good translated and expansibility. Based on this theory, we can do similar things to other online editor.

Key words: the text editor; FCKeditor; auto-hide

在建設(shè)具有交互性網(wǎng)站時(shí),都允許用戶輸入數(shù)據(jù),如發(fā)表評論、新增主題、發(fā)送信息等,而如今所輸入的數(shù)據(jù)所包含的不僅僅是文本信息,還包括圖片、鏈接、FLASH,甚至音頻和視頻等,這就不是HTML提供的TEXT或TEXTAREA所能完成的,一般的開發(fā)者都會(huì)使用第三方的在線編輯器來實(shí)現(xiàn),這樣對開發(fā)者和用戶都極為方便。第三方的在線編輯器有很多,F(xiàn)CKeditor是其中一個(gè)使用較多、免費(fèi)的編輯器。

1 FCKeditor簡介

FCKeditor(FCKeditor主頁:http://www.fckeditor.net)是一個(gè)專門使用在網(wǎng)頁上屬于開放源代碼的所見即所得文字編輯器。它志于輕量化,不需要太復(fù)雜的安裝步驟即可使用,且不必在客戶端進(jìn)行任何方式的安裝。在所有的在線編輯器中,F(xiàn)CKeditor屬于目前互聯(lián)網(wǎng)上最好的編輯器之列,它功能強(qiáng)大,支持多種瀏覽器,無平臺限制,可以和ASP.NET、ASP、JSP、PHP等多種Web語言融合,多語言支持,開放源碼,擴(kuò)展方便,加載速度快等。

2 自動(dòng)隱藏在線多編輯器的需求

筆者開發(fā)一套英語自主學(xué)習(xí)平臺(http://www.gzjzes.net)時(shí)選擇了FCKeditor在線編輯器。在該平臺中,多處需要使用在線文本編輯器,尤其是教師用戶往題庫中增加題目時(shí),需要多個(gè)文本框供教師輸入題目的相關(guān)信息,如:題目內(nèi)容、注釋、答案、解答過程等等。為了用戶界面的友好以及使用方便,這些文本框都采用所見即所得的方式,即需要為每個(gè)文本框注冊FCKeditor編輯器,然后由于需要的文本框較多,這就會(huì)影響頁面的加載速度,而且也會(huì)因?yàn)槊總€(gè)文本框都有工具欄使得頁面變得較復(fù)雜,用戶使用時(shí)也不方便,如圖1。

圖1 多個(gè)文本框

解決的辦法之一就是使用FCKeditor提供的同一頁面共享工具欄的功能,但是這種解決方案是多個(gè)文本框共同使用一個(gè)工具欄進(jìn)行文本編輯,對于經(jīng)常輸入數(shù)據(jù),或頻繁編輯文本的用戶來說,顯得極為不方便。另外頁面也顯得不夠友好,對于初級用戶來說使用時(shí)也覺得有困難。筆者在開發(fā)英語自主學(xué)習(xí)平臺時(shí)就曾使用該辦法,用戶就反應(yīng)使用不方便。因?yàn)槎鄠€(gè)文本框共享一個(gè)工具欄就使得工具欄必然會(huì)離一些文本框較遠(yuǎn),編輯時(shí)鼠標(biāo)需要來回長距離的移動(dòng)而帶來不便,也不直觀。

理想的效果應(yīng)該是:1)當(dāng)打開頁面時(shí),除一個(gè)默認(rèn)的文本框的工具欄處于顯示狀態(tài),其他的工具欄都設(shè)定為隱藏狀態(tài),提高頁面加載速度;2)當(dāng)用戶在編輯某個(gè)文本框的內(nèi)容時(shí),該文本框?qū)?yīng)的工具欄才顯示,而隱藏其他文本框的工具欄,這樣也使得其他文本框能顯示更多的內(nèi)容,以方便用戶瀏覽。如圖2。

3 自動(dòng)隱藏編輯器的原理

根據(jù)理想的效果,也就是當(dāng)文本框獲得焦點(diǎn)的時(shí)候,讓編輯器的工具欄顯示,而一旦文本框失去焦點(diǎn),則隱藏工具欄。也就是在注冊FCKeditor編輯器時(shí),為該編輯器添加獲得焦點(diǎn)時(shí)的響應(yīng)函數(shù),在該函數(shù)里處理工具欄的顯示以及前一個(gè)獲得焦點(diǎn)的編輯器的工具欄隱藏工作。

4 自動(dòng)隱藏編輯器的實(shí)現(xiàn)

我們知道每個(gè)FCKeditor編輯器注冊完成時(shí)都會(huì)調(diào)用一個(gè)FCKeditor的API函數(shù)FCKeditor_OnComplete,因此基于上面的原理,只要在該函數(shù)里為編輯器添加獲得焦點(diǎn)的響應(yīng)函數(shù)。使用javascript的代碼如下:

圖2 能自動(dòng)隱藏工具欄的編輯器

<script type=\"text/javascript\">

<!--

var g_sCurrEditor = \"\";//全局變量,記錄當(dāng)前獲得焦點(diǎn)的編輯器名稱

function FCKeditor_OnComplete( editorInstance ) {

//設(shè)置編輯器獲得焦點(diǎn)的響應(yīng)函數(shù)

editorInstance.EditorDocument.body.onfocus =

function(){ focusChange( editorInstance.Name ); };

}

function focusChange( sInstanceName ) {

if( g_sCurrEditor !=sInstanceName ) {

var oEditor = FCKeditorAPI.GetInstance( sInstanceName );

oEditor.ToolbarSet.Expand();//展開工具欄

if( g_sCurrEditor != \"\" ){

var oEditor = FCKeditorAPI.GetInstance( g_sCurrEditor );

oEditor.ToolbarSet.Collapse();//關(guān)閉g_sCurrEditor的工具欄

}

g_sCurrEditor = sInstanceName;

}}

-->

</script>

在函數(shù)FCKeditor_OnComplete中設(shè)置編輯器獲得焦點(diǎn)的響應(yīng)函數(shù),使得編輯器獲得焦點(diǎn)時(shí)就調(diào)用自定義函數(shù)focusChange。在函數(shù)focusChange中,首先判斷通過全局變量g_sCurrEditor記錄的當(dāng)前活動(dòng)編輯器與正獲得焦點(diǎn)的編輯器sInstanceName是否相同,如果不同,則展開編輯器sInstanceName的工具欄,然后通過編輯器的名稱g_sCurrEditor 與FCKeditor的API函數(shù)GetInstance獲得當(dāng)前活動(dòng)編輯器g_sCurrEditor的對象,通過對象則很容易讓其工具欄隱藏起來,最后修改當(dāng)前活動(dòng)編輯器名稱,即對變量g_sCurrEditor賦值。

加入上面代碼后,則可為任意頁面實(shí)現(xiàn)自動(dòng)隱藏編輯器功能,只需要在設(shè)計(jì)好頁面后直接注冊編輯器,圖2中的頁面注冊代碼如下:

<script type=\"text/javascript\">

<!--

//初始化控件

g_sCurrEditor = \"ta_note\";

RegistFCKeditorEX( \"ta_passage\", 120, 1 );

RegistFCKeditorEX( \"ta_note\", 120, true);

RegistFCKeditorEX( \"ta_content\", 120, 1 );

RegistFCKeditorEX( \"ta_answer\", 120, 1 );

RegistFCKeditorEX( \"ta_process\", 120, 1 );

// RegistFCKeditorEX為筆者自定義函數(shù),以方便注冊編輯器

</script>

5 小結(jié)

在線編輯器的需求在網(wǎng)站建設(shè)中幾乎是必備的,而對于某些需輸入較多數(shù)據(jù)的網(wǎng)站,往往會(huì)需要多個(gè)文本編輯器,對此為了能加快頁面加載速度、方便用戶使用及界面的友好性,筆者提供的一種能自動(dòng)隱藏工具欄的方法,該方法簡單有效,提供的實(shí)現(xiàn)代碼可移植性非常好,另外基于這種設(shè)計(jì)原理,對于其他在線編輯器也可進(jìn)行相似的設(shè)計(jì),達(dá)到自動(dòng)隱藏的目的。讀者可在此原理及實(shí)現(xiàn)上根據(jù)需要改動(dòng)代碼,以達(dá)到不同的效果,滿足各種不同需求,如某些文本框需要自動(dòng)隱藏而其他一直顯示等。文章沒有介紹如何使用FCKeditor,有興趣的讀者可在網(wǎng)上查閱,這方面的內(nèi)容很多。

參考文獻(xiàn):

[1] FCKeditor官方網(wǎng)[EB/OL].http://www.fckeditor.net.

[2] 劉洪偉, 魏振鋼.一個(gè)網(wǎng)頁在線發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2002,19(3):143-144.

主站蜘蛛池模板: 国产最爽的乱婬视频国语对白 | 日韩高清欧美| 亚洲成综合人影院在院播放| 亚洲永久精品ww47国产| 欧美精品亚洲精品日韩专| 五月激情综合网| yjizz国产在线视频网| 久久77777| 国产微拍一区| 91偷拍一区| 免费一级毛片在线观看| 国产成人永久免费视频| 中文字幕伦视频| 亚洲精品久综合蜜| 国产爽妇精品| 欧美成人午夜在线全部免费| 538精品在线观看| 国产裸舞福利在线视频合集| 国产精品美女自慰喷水| 免费在线国产一区二区三区精品| 国产精品嫩草影院av| 成人永久免费A∨一级在线播放| 欧美三级不卡在线观看视频| 91 九色视频丝袜| 国产精品白浆在线播放| 亚洲欧美一区二区三区麻豆| 日韩欧美视频第一区在线观看| 国产一级小视频| 亚洲最大综合网| 色欲色欲久久综合网| 欧美久久网| 日本精品一在线观看视频| 在线观看亚洲天堂| 青青青视频免费一区二区| 国产乱人乱偷精品视频a人人澡| 亚洲精品成人福利在线电影| 国内视频精品| 高清乱码精品福利在线视频| 视频一区视频二区中文精品| 欧美成人看片一区二区三区 | 精品伊人久久久香线蕉| 亚洲天堂视频网站| 亚洲人成网站18禁动漫无码| av免费在线观看美女叉开腿| 欧美日本一区二区三区免费| 真实国产乱子伦高清| 国内精品视频| 国产精品短篇二区| 日本成人一区| www精品久久| 国产永久在线视频| 国产精品永久在线| 亚洲第一香蕉视频| 久久黄色免费电影| 久久免费成人| 亚洲欧美自拍中文| 亚洲欧美成人网| 日韩欧美成人高清在线观看| 欧美精品不卡| 国产欧美精品一区aⅴ影院| 亚洲香蕉在线| 久久人人妻人人爽人人卡片av| 中文字幕资源站| 99精品国产自在现线观看| 亚洲精品自拍区在线观看| 精品福利视频导航| 欧美日韩成人| 色综合色国产热无码一| 欧美一级色视频| 亚洲欧洲日韩综合| 亚洲三级片在线看| 在线国产你懂的| 午夜a级毛片| 三级欧美在线| 天堂av高清一区二区三区| 91在线国内在线播放老师| 国产一区二区人大臿蕉香蕉| 青青青草国产| 一本久道久综合久久鬼色| 色偷偷一区二区三区| 精品国产一区91在线| 麻豆精品在线|