CKEditor使用筆記,ckeditor筆記
相關資源
1. 首頁地址:http://ckeditor.com/
2. :http://ckeditor.com/download
3. SDK地址:http://sdk.ckeditor.com/
如何開始 1、選擇位置,放置CKEditor的包
如:放置在webapp/plugin路徑下,其中webapp是web項目的根目錄。
2、在頁面中引入ckeditor.js
<script type="text/javascript" src="${pageContext.request.contextPath}/plugin/ckeditor/ckeditor.js"></script>
3、在頁面中定義textarea,定義id和name屬性
<textarea id="editor" name="content"></textarea>
4、啟用控制項
在頁面載入完成後調用下述語句:
CKEDITOR.replace("editor"); // 指定textarea的id或name
如果順利,可以看到效果:
var value = CKEDITOR.instances.editor.getData();
注意:editor是CKEDITOR的一個instance,與啟用控制項時傳入的字串一致。
自訂配置
ckeditor/config.js檔案用於CKEditor的配置。剛下載下來時,內容如下:
/** * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */CKEDITOR.editorConfig = function( config ) { // Define changes to default configuration here. For example: // config.language = 'fr'; // config.uiColor = '#AADC6E';};
我們需要自訂配置,寫在方法裡。
組態工具欄
CKEditor劃分了三個版本,支援詳簡不同的工具列。如果我們需要在此基礎上進行配置,可以使用下載包裡提供的組態工具,直接以本瀏覽器開啟/ckeditor/samples/toolbarconfigurator/index.html
config.font_names = '宋體/SimSun;新宋體/NSimSun;仿宋/FangSong';
如:將上述代碼複製到config.js的方法中,可以配置控制項的字型分別為宋體、新宋體、仿宋。
控制項可以配置多個字型實體,字型之間以;
分隔。字型又分顯示名和設定名之別,以/
分隔;顯示名用於在控制項中顯示,設定名用於設定對應的font-family,所以設定名不能隨意填寫。如,按照上述的配置,選擇了新宋體之後,輸出的代碼為style="font-family:nsimsun"
。
font-family
可以設定多個字型的序列,所以控制項的一個字型實體,可以有多個輸出名,以,
分隔。如:
config.font_names = 'Times New Roman/Times New Roman, Times, serif';
換行模式配置
在預設的情況下,Enter鍵是添加一個p標籤,而Shift+Enter是添加一個br標籤。控制項提供了三種模式:
1. CKEDITOR.ENTER_P
新增一個p標籤
2. CKEDITOR.ENTER_BR
新增一個br標籤
3. CKEDITOR.ENTER_DIV
新增一個div標籤
控制項使用下述的參數名來配置模式:
1. enterMode
配置單擊Enter鍵的模式
2. shiftEnterMode
配置Shift + Enter按鍵組合的模式
如下述代碼:
config.enterMode = CKEDITOR.ENTER_BR; // 配置Enter是換行config.shiftEnterMode = CKEDITOR.ENTER_P; // 配置Shift + Enter是換段落
更多配置
參考CKEDITOR.config的API。
配置的方式
除了上文中描述的,直接修改config.js檔案,還有另外兩種配置的方式。
1. 啟用時配置
CKEDITOR.replace( 'editor', { language: 'fr', uiColor: '#9AB8F3'});
2. 自訂設定檔
CKEDITOR.replace( 'editor1', { customConfig: '/custom/ckeditor_config.js'});
要求自訂設定檔的結構和預設的config.js一致。
功能試煉1、初始最大化
CKEDITOR.editor有事件instanceReady,CKEDITOR.editor#on( 'instanceReady', function(evt) )可以捕捉控制項初始化完成的時機;
CKEDITOR.instances.editorId可以擷取指定editorId的CKEDITOR.editor執行個體;
CKEDITOR.editor#execCommand( commandName, [data] )用於執行命令,'maximize'是最大化命令;
結合以上知識,我們可以得到代碼
CKEDITOR.instances.editor.on('instanceReady', function (e) { CKEDITOR.instances.editor.execCommand('maximize'); // 初始最大化});
2、擷取控制項的富常值內容
CKEDITOR.editor#getData()可用於擷取富文本的內容
var value = CKEDITOR.instances.editor.getData();
3、預覽列印
CKEDITOR.instances.editor.execCommand('preview'); // 預覽CKEDITOR.instances.editor.execCommand('print'); // 列印
關於execCommand的說明
"maximize"是最大化的命令,"preview"是預覽的命令,"print"的命令。大家一定想要一份command的清單,求知有哪些命令可供我們使用。很遺憾,我沒有找到這樣的清單,通過走讀源碼,在ckeditor.js中,會調用CKEDITOR.plugins.add( {String}name, {Object}[definition] )來註冊資源,"maximize"、"preview"、"print"都在其中。
通過關鍵字匹配,共有72個資源:
dialogui, dialog, about, a11yhelp, dialogadvtab, basicstyles, bidi, blockquote, clipboard, button, panelbutton, panel, floatpanel, colorbutton, colordialog, templates, menu, contextmenu, div, resize, toolbar, elementspath, enterkey, entities, popup, filebrowser, find, fakeobjects, flash, floatingspace, listblock, richcombo, font, forms, format, horizontalrule, htmlwriter, iframe, wysiwygarea, image, indent, indentblock, indentlist, smiley, justify, menubutton, language, link, list, liststyle, magicline, maximize, newpage, pagebreak, pastetext, pastefromword, preview, print, removeformat, save, selectall, showblocks, showborders, sourcearea, specialchar, scayt, stylescombo, tab, table, tabletools, undo, wsc
Technorati 標籤: CKEditor使用,CKEditor配置