最新版CKEditor的配置方法及插件(Plugin)編寫(xiě)示例
FCKEditor重寫(xiě)了js框架,并改名為CKEditor。第一次在CKEditor網(wǎng)站上看到demo界面,就被CKEditor友好的界面和強(qiáng)大的功能所震撼。毫無(wú)疑問(wèn),CKEditor是當(dāng)前互聯(lián)網(wǎng)上最優(yōu)秀的開(kāi)源多媒體HTML編輯器。
本文記錄配置CKEditor過(guò)程,并以文章分頁(yè)插件為例,簡(jiǎn)要CKEditor Plugin編寫(xiě)過(guò)程。 從官網(wǎng)http://ckeditor.com/download下載最新版CKEditor,解壓。
1. 調(diào)用CKEditor方法
在頁(yè)面里加載核心js文件:<script type="text/javascript" src="ckeditor/ckeditor.js"></script>,按常規(guī)方式放置textarea,如:< textarea id="editor1″ name="editor1″ rows="10" cols="80">初始化html內(nèi)容</textarea>
然后在textarea后面寫(xiě)js:<script type="text/javascript">CKEDITOR.replace('editor1');</script>
其他調(diào)用方式可參考 _samples 目錄下的示例。
2. 配置個(gè)性化工具欄
ckeditor默認(rèn)的工具欄中很多不常用,或者相對(duì)中文來(lái)說(shuō)不適用??赏ㄟ^(guò)配置默認(rèn)工具欄方式實(shí)現(xiàn),最簡(jiǎn)潔的方法是直接修改配置文件 config.js 我的config.js內(nèi)容如下:
CKEDITOR.editorConfig = function( config )
{
// Define changes to default configuration here. For example:
// config.language = 'fr';
config.uiColor = '#ddd';
config.toolbar = 'Cms';
config.toolbar_Cms =
[
['Source','-'],
['Cut','Copy','Paste','PasteText','PasteFromWord','-'],
['Undo','Redo','-','Find','Replace','RemoveFormat'],['Link','Unlink','Anchor'],
['Image','Flash','Table','HorizontalRule', '-'],['Maximize'],
'/',
['Bold','Italic','Underline','Strike','-'],
['FontSize'],['TextColor','BGColor'],
['NumberedList','BulletedList','-','Outdent','Indent','pre'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
['PageBreak', 'Page']
];
config.filebrowserUploadUrl = '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files';
config.fontSize_sizes = '10/10px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;28/28px;32/32px;48/48px;';
config.extraPlugins = 'apage';
};
3. 將編輯器內(nèi)文字修改為14px (默認(rèn)12px,對(duì)中文顯示不太好看)
1)可視化編輯里默認(rèn)字體大?。盒薷母夸浵?contents.css,將body中font-size: 12px改為 font-size: 14px
2)源代碼視圖字體大?。盒薷膕kins\kama\editor.css,在最后加一句:.cke_skin_kama textarea.cke_source { font-size:14px; }
4. 插件編寫(xiě)流程和實(shí)例代碼
1) 在plugins目錄新建文件夾apage,在apage下新建文件:plugin.js 內(nèi)容如下:
CKEDITOR.plugins.add( 'apage',
{
init : function( editor )
{
// Add the link and unlink buttons.
editor.addCommand( 'apage', new CKEDITOR.dialogCommand( 'apage' ) );
editor.ui.addButton( 'Page',
{
//label : editor.lang.link.toolbar,
label : “Page",
//icon: 'images/anchor.gif',
command : 'apage'
} );
//CKEDITOR.dialog.add( 'link', this.path + 'dialogs/link.js' );
CKEDITOR.dialog.add( 'apage', function( editor )
{
return {
title : '文章分頁(yè)',
minWidth : 350,
minHeight : 100,
contents : [
{
id : 'tab1',
label : 'First Tab',
title : 'First Tab',
elements :
[
{
id : 'pagetitle',
type : 'text',
label : '請(qǐng)輸入下一頁(yè)文章標(biāo)題<br />(不輸入默認(rèn)使用當(dāng)前標(biāo)題+數(shù)字形式)'
}
]
}
],
onOk : function()
{
editor.insertHtml("[page="+this.getValueOf( 'tab1', 'pagetitle' )+"]“);
}
};
} );
},
requires : [ 'fakeobjects' ]
} );
2)在toolbar中加一項(xiàng)Page,并在配置中聲明添加擴(kuò)展插件 config.extraPlugins = 'apage'; 有兩種方法實(shí)現(xiàn),方法一是直接在config.js中添加,示例本文上面的config.js示例代碼; 方法二:在引用CKEditor的地方加配置參數(shù),如:
CKEDITOR.replace( 'editor1', { extraPlugins : 'examenLink', toolbar : [ ['Undo','Redo','-','Cut','Copy','Paste'], ['ExamenLink','Bold','Italic','Underline',], ['Link','Unlink','Anchor','-','Source'],['Page'] ] });
此時(shí)你應(yīng)該看到編輯器里多了一個(gè)空白的按鈕了。

解決空白按鈕的方法有二:
方法1:修改插件代碼,plugin,將icon定義為一個(gè)存在的圖標(biāo)。
方法2:讓編輯顯示Label的文字。需要加在放編輯器的頁(yè)面里加css(注意:cke_button_apage的名稱與實(shí)際保持一致。)
<style type="text/css">
.cke_button_apage .cke_icon { display : none !important; }
.cke_button_apage .cke_label { display : inline !important; }
</style>
如果你的分頁(yè)只需要插入一個(gè)分頁(yè)符,不需要像本文需要填寫(xiě)標(biāo)題,那更簡(jiǎn)單,只需要修改插件代碼即可。請(qǐng)?jiān)诩t麥軟件團(tuán)隊(duì)wiki上查看本文提到的所有代碼: http://www.teamwiki.cn/js/ckeditor_config_plugin
CKEditor 配置及插件編寫(xiě)示例
CKEditor 配置
config.js
CKEDITOR.editorConfig = function( config )
{
// Define changes to default configuration here. For example:
// config.language = 'fr';
config.uiColor = '#ddd';
config.toolbar = 'Cms';
config.toolbar_Cms =
[
['Source','-'],
['Cut','Copy','Paste','PasteText','PasteFromWord','-'],
['Undo','Redo','-','Find','Replace','RemoveFormat'],['Link','Unlink','Anchor'],
['Image','Flash','Table','HorizontalRule', '-'],['Maximize'],
'/',
['Bold','Italic','Underline','Strike','-'],
['FontSize'],['TextColor','BGColor'],
['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
['PageBreak','-','Page']
];
config.filebrowserUploadUrl = '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files';
config.fontSize_sizes = '10/10px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;28/28px;32/32px;48/48px;';
config.extraPlugins = 'apage';
};
CKEditor 分頁(yè)插件1:到提示輸入下一頁(yè)文章標(biāo)題
CKEDITOR.plugins.add( 'apage',
{
init : function( editor )
{
// Add the link and unlink buttons.
editor.addCommand( 'apage', new CKEDITOR.dialogCommand( 'apage' ) );
editor.ui.addButton( 'Page',
{
//label : editor.lang.link.toolbar,
label : "Page",
//icon: 'images/anchor.gif',
command : 'apage'
} );
//CKEDITOR.dialog.add( 'link', this.path + 'dialogs/link.js' );
CKEDITOR.dialog.add( 'apage', function( editor )
{
return {
title : '文章分頁(yè)',
minWidth : 350,
minHeight : 100,
contents : [
{
id : 'tab1',
label : 'First Tab',
title : 'First Tab',
elements :
[
{
id : 'pagetitle',
type : 'text',
label : '請(qǐng)輸入下一頁(yè)文章標(biāo)題<br />(不輸入默認(rèn)使用當(dāng)前標(biāo)題+數(shù)字形式)'
}
]
}
],
onOk : function()
{
editor.insertHtml("[page="+this.getValueOf( 'tab1', 'pagetitle' )+"]");
}
};
} );
},
requires : [ 'fakeobjects' ]
} );
CKEditor 分頁(yè)插件2:直接插入分頁(yè)符
因?yàn)榫庉嬈鞯哪J(rèn)轉(zhuǎn)碼,使用過(guò)程中需要將『page』中的『』去掉。
CKEDITOR.plugins.add( 'apage',
{
var cmd = {
exec:function(editor){
editor.insertHtml("[[『page』]]");
}
}
init : function( editor )
{
// Add the link and unlink buttons.
editor.addCommand( 'apage', cmd );
editor.ui.addButton( 'Page',
{
//label : editor.lang.link.toolbar,
label : "Page",
//icon: 'images/anchor.gif',
command : 'apage'
} );
},
requires : [ 'fakeobjects' ]
} );
- 手把手教你 CKEDITOR 4 擴(kuò)展插件制作
- CKEditor 4.4.1 添加代碼高亮顯示插件功能教程【使用官方推薦Code Snippet插件】
- php版本CKEditor 4和CKFinder安裝及配置方法圖文教程
- CKEditor4配置與開(kāi)發(fā)詳細(xì)中文說(shuō)明文檔
- 網(wǎng)頁(yè)編輯器FCKeditor 2.6.4精簡(jiǎn)配置方法
- ckeditor自定義插件使用方法詳解
- CKEditor 附插入代碼的插件
- fckeditor 插件實(shí)例 制作步驟
- fckeditor 插件開(kāi)發(fā)參考文檔
- autogrow 讓FCKeditor高度隨內(nèi)容增加的插件
- CKEDITOR二次開(kāi)發(fā)之插件開(kāi)發(fā)方法
- 手把手教你 CKEDITOR 4 實(shí)現(xiàn)Dialog 內(nèi)嵌 IFrame操作詳解
相關(guān)文章
免費(fèi)開(kāi)源百度編輯器(UEditor)使用方法
UEditor是一個(gè)開(kāi)源免費(fèi)的編輯器,由百度web前端研發(fā)部開(kāi)發(fā)所見(jiàn)即所得富文本web編輯器,具有輕量,可定制,注重用戶體驗(yàn)等特點(diǎn),開(kāi)源基于BSD協(xié)議,允許自由使用和修改代碼2014-05-05
dedecms ckeditor編輯器添加鏈接默認(rèn)新窗口打開(kāi)的修改方法
最近使用了dedecms ckeditor編輯器,發(fā)現(xiàn)每次都是當(dāng)前頁(yè)打開(kāi),對(duì)用戶瀏覽造成一定的麻煩,所以特改成新窗口打開(kāi),這里腳本之家小編為大家分享下2014-07-07
jsp fckeditor 上傳中文圖片亂碼問(wèn)題的解決方法
徹底解決fckeditor(jsp版)上傳中文圖片亂碼問(wèn)題,我這里用的編碼是utf-8的,這里用的fckeditor 是2.6的,fckeditor.java包是2.3的2009-02-02
FCKeditor + SyntaxHighlighter 讓代碼高亮著色插件
FCKeditor是現(xiàn)在最為流行的開(kāi)源編輯器,SyntaxHighlighter是一個(gè)用JS實(shí)現(xiàn)的代碼高亮顯示插件,F(xiàn)CKeditor + SyntaxHighlighter 讓代碼高亮著色,可以最小化修改您的程序?qū)崿F(xiàn)效果2014-06-06
百度UEditor修改右下角統(tǒng)計(jì)字?jǐn)?shù)包含html樣式
百度UEditor修改右下角統(tǒng)計(jì)字?jǐn)?shù)默認(rèn)只統(tǒng)計(jì)前臺(tái)所見(jiàn)的文字個(gè)數(shù),如何讓右下角統(tǒng)計(jì)字?jǐn)?shù)包含html樣式,需要的朋友可以參考下2014-07-07
asp.net 為FCKeditor開(kāi)發(fā)代碼高亮插件實(shí)現(xiàn)代碼
昨天已經(jīng)將BlogEngine的可視化編輯器換成了FCKeditor,作為一個(gè)程序員,在博客中插入代碼是很重要的一塊。網(wǎng)上現(xiàn)有的都是修改FCKeditor的fckeditorcode_gecko.js和fckeditorcode_ie.js以達(dá)到InsertCode的目的。這個(gè)方法非常麻煩,當(dāng)要使用FCKeditor新版本時(shí)都要重新修改這兩個(gè)文件,非常影響我們的效率。2008-08-08

