经典的 Web 编辑器——CKEditor 介绍
- 格式:doc
- 大小:182.50 KB
- 文档页数:11
富⽂本编辑器CKeditor配置使⽤+上传图⽚参考⽂献:,⽼版本可以参考有点问题发现可⾏有⼀定参考价值富⽂本编辑器 CKeditor 配置使⽤+上传图⽚下载后默认放在⽹站根⽬录下 ckeditor⽂件夹中⼀、使⽤⽅法:1、在页⾯<head>中引⼊ckeditor核⼼⽂件ckeditor.js<script type="text/javascript" src="ckeditor/ckeditor.js"></script>2、在使⽤编辑器的地⽅插⼊HTML控件<textarea><textarea id="TextArea1" cols="20" rows="2" class="ckeditor"></textarea>如果是环境,也可⽤服务器端控件<TextBox><asp:TextBox ID="tbContent" runat="server" TextMode="MultiLine" class="ckeditor"></asp:TextBox>注意在控件中加上 class="ckeditor" 。
3、将相应的控件替换成编辑器代码<script type="text/javascript">CKEDITOR.replace('TextArea1');//如果是在环境下⽤的服务器端控件<TextBox>CKEDITOR.replace('tbContent');//如果<TextBox>控件在母版页中,要这样写CKEDITOR.replace('<%=tbContent.ClientID.Replace("_","$") %>');</script>4、配置编辑器ckeditor的配置都集中在 ckeditor/config.js ⽂件中,下⾯是⼀些常⽤的配置参数:// 界⾯语⾔,默认为 'en'nguage = 'zh-cn';// 设置宽⾼config.width = 400;config.height = 400;// 编辑器样式,有三种:'kama'(默认)、'office2003'、'v2'config.skin = 'v2';// 背景颜⾊config.uiColor = '#FFF';// ⼯具栏(基础'Basic'、全能'Full'、⾃定义)plugins/toolbar/plugin.jsconfig.toolbar = 'Basic';config.toolbar = 'Full';这将配合:config.toolbar_Full = [['Source','-','Save','NewPage','Preview','-','Templates'],['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField'],'/',['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],['Link','Unlink','Anchor'],['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],'/',['Styles','Format','Font','FontSize'],['TextColor','BGColor']];//⼯具栏是否可以被收缩config.toolbarCanCollapse = true;//⼯具栏的位置config.toolbarLocation = 'top';//可选:bottom//⼯具栏默认是否展开config.toolbarStartupExpanded = true;// 取消 “拖拽以改变尺⼨”功能 plugins/resize/plugin.jsconfig.resize_enabled = false;//改变⼤⼩的最⼤⾼度config.resize_maxHeight = 3000;//改变⼤⼩的最⼤宽度config.resize_maxWidth = 3000;//改变⼤⼩的最⼩⾼度config.resize_minHeight = 250;//改变⼤⼩的最⼩宽度config.resize_minWidth = 750;// 当提交包含有此编辑器的表单时,是否⾃动更新元素内的数据config.autoUpdateElement = true;// 设置是使⽤绝对⽬录还是相对⽬录,为空为相对⽬录config.baseHref = ''// 编辑器的z-index值config.baseFloatZIndex = 10000;//设置快捷键config.keystrokes = [[ CKEDITOR.ALT + 121 /*F10*/, 'toolbarFocus' ], //获取焦点[ CKEDITOR.ALT + 122 /*F11*/, 'elementsPathFocus' ], //元素焦点[ CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' ], //⽂本菜单[ CKEDITOR.CTRL + 90 /*Z*/, 'undo' ], //撤销[ CKEDITOR.CTRL + 89 /*Y*/, 'redo' ], //重做[ CKEDITOR.CTRL + CKEDITOR.SHIFT + 90 /*Z*/, 'redo' ], //[ CKEDITOR.CTRL + 76 /*L*/, 'link' ], //链接[ CKEDITOR.CTRL + 66 /*B*/, 'bold' ], //粗体[ CKEDITOR.CTRL + 73 /*I*/, 'italic' ], //斜体[ CKEDITOR.CTRL + 85 /*U*/, 'underline' ], //下划线[ CKEDITOR.ALT + 109 /*-*/, 'toolbarCollapse' ]]//设置快捷键可能与浏览器快捷键冲突 plugins/keystrokes/plugin.js.config.blockedKeystrokes = [CKEDITOR.CTRL + 66 /*B*/,CKEDITOR.CTRL + 73 /*I*/,CKEDITOR.CTRL + 85 /*U*/]//设置编辑内元素的背景⾊的取值 plugins/colorbutton/plugin.js.config.colorButton_backStyle = {element : 'span',styles : { 'background-color' : '#(color)' }}//设置前景⾊的取值 plugins/colorbutton/plugin.jsconfig.colorButton_colors = '000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,0 //是否在选择颜⾊时显⽰“其它颜⾊”选项 plugins/colorbutton/plugin.jsconfig.colorButton_enableMore = false//区块的前景⾊默认值设置 plugins/colorbutton/plugin.jsconfig.colorButton_foreStyle = {element : 'span',styles : { 'color' : '#(color)' }};//所需要添加的CSS⽂件在此添加可使⽤相对路径和⽹站的绝对路径config.contentsCss = './contents.css';//⽂字⽅向config.contentsLangDirection = 'rtl'; //从左到右//CKeditor的配置⽂件若不想配置留空即可CKEDITOR.replace( 'myfiled', { customConfig : './config.js' } );//界⾯编辑框的背景⾊ plugins/dialog/plugin.jsconfig.dialog_backgroundCoverColor = '#fffefd'; //可设置参考config.dialog_backgroundCoverColor = 'white' //默认//背景的不透明度数值应该在:0.0~1.0 之间 plugins/dialog/plugin.jsconfig.dialog_backgroundCoverOpacity = 0.5//移动或者改变元素时边框的吸附距离单位:像素 plugins/dialog/plugin.jsconfig.dialog_magnetDistance = 20;//是否拒绝本地拼写检查和提⽰默认为拒绝⽬前仅firefox和safari⽀持 plugins/wysiwygarea/plugin.js.config.disableNativeSpellChecker = true//进⾏表格编辑功能如:添加⾏或列⽬前仅firefox⽀持 plugins/wysiwygarea/plugin.jsconfig.disableNativeTableHandles = true; //默认为不开启//是否开启图⽚和表格的改变⼤⼩的功能 config.disableObjectResizing = true;config.disableObjectResizing = false//默认为开启//设置HTML⽂档类型config.docType = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd%22' ;//是否对编辑区域进⾏渲染 plugins/editingblock/plugin.jsconfig.editingBlock = true;//编辑器中回车产⽣的标签config.enterMode = CKEDITOR.ENTER_P; //可选:CKEDITOR.ENTER_BR或CKEDITOR.ENTER_DIV//是否使⽤HTML实体进⾏输出 plugins/entities/plugin.jsconfig.entities = true;//定义更多的实体 plugins/entities/plugin.jsconfig.entities_additional = '#39'; //其中#代替了&//是否转换⼀些难以显⽰的字符为相应的HTML字符 plugins/entities/plugin.jsconfig.entities_greek = true;//是否转换⼀些拉丁字符为HTML plugins/entities/plugin.jsconfig.entities_latin = true;//是否转换⼀些特殊字符为ASCII字符如"This is Chinese: 汉语."转换为"This is Chinese: 汉语." plugins/entities/plugin.jsconfig.entities_processNumerical = false;//添加新组件config.extraPlugins = 'myplugin'; //⾮默认仅⽰例//使⽤搜索时的⾼亮⾊ plugins/find/plugin.jsconfig.find_highlight = {element : 'span',styles : { 'background-color' : '#ff0', 'color' : '#00f' }};//默认的字体名 plugins/font/plugin.jsconfig.font_defaultLabel = 'Arial';//字体编辑时的字符集可以添加常⽤的中⽂字符:宋体、楷体、⿊体等 plugins/font/plugin.jsconfig.font_names = 'Arial;Times New Roman;Verdana';//⽂字的默认式样 plugins/font/plugin.jsconfig.font_style = {element : 'span',styles : { 'font-family' : '#(family)' },overrides : [ { element : 'font', attributes : { 'face' : null } } ]};//字体默认⼤⼩ plugins/font/plugin.jsconfig.fontSize_defaultLabel = '12px';//字体编辑时可选的字体⼤⼩ plugins/font/plugin.jsconfig.fontSize_sizes ='8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px'//设置字体⼤⼩时使⽤的式样 plugins/font/plugin.jsconfig.fontSize_style = {element : 'span',styles : { 'font-size' : '#(size)' },overrides : [ { element : 'font', attributes : { 'size' : null } } ]};//是否强制复制来的内容去除格式 plugins/pastetext/plugin.jsconfig.forcePasteAsPlainText =false//不去除//是否强制⽤“&”来代替“&”plugins/htmldataprocessor/plugin.jsconfig.forceSimpleAmpersand = false;//对address标签进⾏格式化 plugins/format/plugin.jsconfig.format_address = { element : 'address', attributes : { class : 'styledAddress' } };//对DIV标签⾃动进⾏格式化 plugins/format/plugin.jsconfig.format_div = { element : 'div', attributes : { class : 'normalDiv' } };//对H1标签⾃动进⾏格式化 plugins/format/plugin.jsconfig.format_h1 = { element : 'h1', attributes : { class : 'contentTitle1' } };//对H2标签⾃动进⾏格式化 plugins/format/plugin.jsconfig.format_h2 = { element : 'h2', attributes : { class : 'contentTitle2' } };//对H3标签⾃动进⾏格式化 plugins/format/plugin.jsconfig.format_h1 = { element : 'h3', attributes : { class : 'contentTitle3' } };//对H4标签⾃动进⾏格式化 plugins/format/plugin.jsconfig.format_h1 = { element : 'h4', attributes : { class : 'contentTitle4' } };//对H5标签⾃动进⾏格式化 plugins/format/plugin.jsconfig.format_h1 = { element : 'h5', attributes : { class : 'contentTitle5' } };//对H6标签⾃动进⾏格式化 plugins/format/plugin.jsconfig.format_h1 = { element : 'h6', attributes : { class : 'contentTitle6' } };//对P标签⾃动进⾏格式化 plugins/format/plugin.jsconfig.format_p = { element : 'p', attributes : { class : 'normalPara' } };//对PRE标签⾃动进⾏格式化 plugins/format/plugin.jsconfig.format_pre = { element : 'pre', attributes : { class : 'code' } };//⽤分号分隔的标签名字在⼯具栏上显⽰ plugins/format/plugin.jsconfig.format_tags = 'p;h1;h2;h3;h4;h5;h6;pre;address;div';//是否使⽤完整的html编辑模式如使⽤,其源码将包含:<html><body></body></html>等标签config.fullPage = false;//是否忽略段落中的空字符若不忽略则字符将以“”表⽰ plugins/wysiwygarea/plugin.jsconfig.ignoreEmptyParagraph = true;//在清除图⽚属性框中的链接属性时是否同时清除两边的<a>标签 plugins/image/plugin.jsconfig.image_removeLinkByEmptyURL = true;//⼀组⽤逗号分隔的标签名称,显⽰在左下⾓的层次嵌套中 plugins/menu/plugin.js.config.menu_groups ='clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea';//显⽰⼦菜单时的延迟,单位:ms plugins/menu/plugin.jsconfig.menu_subMenuDelay = 400;//当执⾏“新建”命令时,编辑器中的内容 plugins/newpage/plugin.jsconfig.newpage_html = '';//当从word⾥复制⽂字进来时,是否进⾏⽂字的格式化去除 plugins/pastefromword/plugin.jsconfig.pasteFromWordIgnoreFontFace = true; //默认为忽略格式//是否使⽤<h1><h2>等标签修饰或者代替从word⽂档中粘贴过来的内容 plugins/pastefromword/plugin.jsconfig.pasteFromWordKeepsStructure = false;//从word中粘贴内容时是否移除格式 plugins/pastefromword/plugin.jsconfig.pasteFromWordRemoveStyle = false;//对应后台语⾔的类型来对输出的HTML内容进⾏格式化,默认为空config.protectedSource.push( /<"?["s"S]*?"?>/g ); // PHP Codeconfig.protectedSource.push( //g ); // ASP Codeconfig.protectedSource.push( /(]+>["s|"S]*?<"/asp:[^">]+>)|(]+"/>)/gi ); // Code//当输⼊:shift+Enter时插⼊的标签config.shiftEnterMode = CKEDITOR.ENTER_P; //可选:CKEDITOR.ENTER_BR或CKEDITOR.ENTER_DIV//可选的表情替代字符 plugins/smiley/plugin.js.config.smiley_descriptions = [':)', ':(', ';)', ':D', ':/', ':P','', '', '', '', '', '','', ';(', '', '', '', '','', ':kiss', '' ];//对应的表情图⽚ plugins/smiley/plugin.jsconfig.smiley_images = ['regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tounge_smile.gif','embaressed_smile.gif','omg_smile.gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif','devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.gif','thumbs_up.gif','heart.gif','broken_heart.gif','kiss.gif','envelope.gif'];//表情的地址 plugins/smiley/plugin.jsconfig.smiley_path = 'plugins/smiley/images/';//页⾯载⼊时,编辑框是否⽴即获得焦点 plugins/editingblock/plugin.js plugins/editingblock/plugin.js.config.startupFocus = false;//载⼊时,以何种⽅式编辑源码和所见即所得 "source"和"wysiwyg" plugins/editingblock/plugin.js.config.startupMode ='wysiwyg';//载⼊时,是否显⽰框体的边框 plugins/showblocks/plugin.jsconfig.startupOutlineBlocks = false;//是否载⼊样式⽂件 plugins/stylescombo/plugin.js.config.stylesCombo_stylesSet = 'default';//以下为可选config.stylesCombo_stylesSet = 'mystyles';config.stylesCombo_stylesSet = 'mystyles:/editorstyles/styles.js';config.stylesCombo_stylesSet = 'mystyles:/editorstyles/styles.js';//起始的索引值config.tabIndex = 0;//当⽤户键⼊TAB时,编辑器⾛过的空格数,( ) 当值为0时,焦点将移出编辑框 plugins/tab/plugin.jsconfig.tabSpaces = 0;//默认使⽤的模板 plugins/templates/plugin.js.config.templates = 'default';//⽤逗号分隔的模板⽂件plugins/templates/plugin.js.config.templates_files = [ 'plugins/templates/templates/default.js' ]//当使⽤模板时,“编辑内容将被替换”框是否选中 plugins/templates/plugin.jsconfig.templates_replaceContent = true;//主题config.theme = 'default';//撤销的记录步数 plugins/undo/plugin.jsconfig.undoStackSize =20;// 在 CKEditor 中集成 CKFinder,注意 ckfinder 的路径选择要正确。
ckeditor高度参数CKEditor 是一个功能强大的开源富文本编辑器,可用于网页开发中的文本编辑,提供了丰富的编辑功能和灵活的参数配置。
其中之一的高度参数,决定了CKEditor 编辑器的显示高度。
在本文中,我们将一步一步回答有关CKEditor 高度参数的问题,以帮助您更好地理解和使用该参数。
第一步:了解CKEditor 是什么在开始之前,让我们简要介绍一下CKEditor。
CKEditor 是一个被广泛使用的开源富文本编辑器,旨在为开发人员提供一个可定制的、功能丰富的文本编辑器,使用户能够在浏览器中轻松创建和编辑各种类型的文本内容。
它支持多种浏览器,并提供了许多插件和主题,以满足各种不同的需求。
第二步:了解CKEditor 高度参数的作用CKEditor 高度参数用于定义CKEditor 编辑器的显示高度,即编辑器区域的垂直尺寸。
通过调整高度参数,我们可以根据实际需求来控制编辑器的显示效果。
这对于在不同的页面布局和设备上使用CKEditor 的开发人员来说非常重要。
第三步:了解CKEditor 高度参数的设置方式CKEditor 的高度参数可以通过多种方式进行设置。
以下是其中一些常用的设置方式:1. 通过配置文件进行设置:我们可以通过CKEditor 的配置文件(如config.js)来设置编辑器的高度参数。
在配置文件中,我们可以找到一个名为"height" 的选项,可以将其设置为一个像素值,如"height: '400px'",或者设置为一个百分比值,如"height: '50'"。
这样,编辑器将根据设置的高度值自动调整尺寸。
2. 通过JavaScript 代码进行设置:除了通过配置文件,我们还可以在JavaScript 代码中直接设置CKEditor 的高度参数。
使用CKEditor 的实例化对象(如editor)可以访问"config" 对象,通过设置"config.height" 属性来指定编辑器的高度,如"editor.config.height = '300px';"。
CKEditor全部配置参数CKEditor全部配置参数下载了完整的程序之后,先要对程序中的不必要的东西进行删除。
凡是文件名或文件夹名前面有"_"的文件或文件夹都可以删除,这些文件是一些说明文件或者实例文件。
另外,./lang文件夹中,只保留:zh_cn.js文件即可,这个文件夹是程序的语言包,因为其它语言大家用不到,放在那里也占用空间,所以索性删掉。
./skins文件夹是编辑器的界面,根据情况保留至少一个文件夹即可,其中kama是可自定颜色UI的文件,建议保留,当然如果不在乎空间大小的话,也可以全部上传。
接下来,就是配置自己的编辑器啦~配置的方式有三种:我个人喜欢使用config.js的方式来使用,下面以此为例,介绍其配置参数。
(所示为默认值)//当提交包含有此编辑器的表单时,是否自动更新元素内的数据config.autoUpdateElement = true//编辑器的z-index值config.baseFloatZIndex = 10000//设置是使用绝对目录还是相对目录,为空为相对目录config.baseHref = ''//设置快捷键从上往下依次是:获取焦点,元素焦点,文本菜单,撤销,重做,重做,链接,粗体,斜体,下划线config.keystrokes =[[ CKEDITOR.ALT + 121 /*F10*/, 'toolbarFocus' ],[ CKEDITOR.ALT + 122 /*F11*/, 'elementsPathFocus' ],[ CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' ],[ CKEDITOR.CTRL + 90 /*Z*/, 'undo' ],[ CKEDITOR.CTRL + 89 /*Y*/, 'redo' ],[ CKEDITOR.CTRL + CKEDITOR.SHIFT + 90 /*Z*/, 'redo' ],[ CKEDITOR.CTRL + 76 /*L*/, 'link' ],[ CKEDITOR.CTRL + 66 /*B*/, 'bold' ],[ CKEDITOR.CTRL + 73 /*I*/, 'italic' ],[ CKEDITOR.CTRL + 85 /*U*/, 'underline' ],[ CKEDITOR.ALT + 109 /*-*/, 'toolbarCollapse' ]]//设置快捷键可能与浏览器快捷键冲突plugins/keystrokes/plugin.js.config.blockedKeystrokes =[CKEDITOR.CTRL + 66 /*B*/,CKEDITOR.CTRL + 73 /*I*/,CKEDITOR.CTRL + 85 /*U*/]//设置编辑内元素的背景色的取值plugins/colorbutton/plugin.js.config.colorButton_backStyle ={element : 'span',styles : { 'background-color' : '#(color)' }}//设置前景色的取值 plugins/colorbutton/plugin.jsconfig.colorButton_colors = '000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22 222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F0 0,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA50 0,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEB D7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF’//是否在选择颜色时显示“其它颜色”选项plugins/colorbutton/plugin.jsconfig.colorButton_enableMore = false//区块的前景色默认值设置 plugins/colorbutton/plugin.jsconfig.colorButton_foreStyle ={element : 'span',styles : { 'color' : '#(color)' }};//所需要添加的CSS文件在此添加可使用相对路径和网站的绝对路径config.contentsCss = './contents.css';//文字方向config.contentsLangDirection = 'rtl';//从左到右//CKeditor的配置文件若不想配置留空即可CKEDITOR.replace( 'myfiled', { customConfig : './config.js' } );//界面的语言配置设置为'zh-cn'即可config.defaultLanguage = 'en';//界面编辑框的背景色 plugins/dialog/plugin.jsconfig.dialog_backgroundCoverColor = 'rgb(255, 254, 253)'; //可设置参考config.dialog_backgroundCoverColor = 'white' //默认//背景的不透明度数值应该在:0.0~1.0 之间plugins/dialog/plugin.jsconfig.dialog_backgroundCoverOpacity = 0.5//移动或者改变元素时边框的吸附距离单位:像素plugins/dialog/plugin.jsconfig.dialog_magnetDistance = 20;//是否拒绝本地拼写检查和提示默认为拒绝目前仅firefox和safari支持 plugins/wysiwygarea/plugin.js.config.disableNativeSpellChecker = true//进行表格编辑功能如:添加行或列目前仅firefox支持plugins/wysiwygarea/plugin.jsconfig.disableNativeTableHandles = true; //默认为不开启//是否开启图片和表格的改变大小的功能config.disableObjectResizing = true;config.disableObjectResizing = false //默认为开启//设置HTML文档类型config.docType = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">' //是否对编辑区域进行渲染 plugins/editingblock/plugin.jsconfig.editingBlock = true//编辑器中回车产生的标签config.enterMode = CKEDITOR.ENTER_P //可选:CKEDITOR.ENTER_BR或CKEDITOR.ENTER_DIV//是否使用HTML实体进行输出 plugins/entities/plugin.jsconfig.entities = true//定义更多的实体 plugins/entities/plugin.jsconfig.entities_additional = '#39' //其中#代替了&//是否转换一些难以显示的字符为相应的HTML字符plugins/entities/plugin.jsconfig.entities_greek = true//是否转换一些拉丁字符为HTML plugins/entities/plugin.jsconfig.entities_latin = true;//是否转换一些特殊字符为ASCII字符如:"This is Chinese: 汉语."转换为:"This is Chinese: 汉语."plugins/entities/plugin.jsconfig.entities_processNumerical = false//添加新组件config.extraPlugins = 'myplugin'; //非默认仅示例//使用搜索时的高亮色 plugins/find/plugin.jsconfig.find_highlight ={element : 'span',styles : { 'background-color' : '#ff0', 'color' : '#00f' }};//默认的字体名 plugins/font/plugin.jsconfig.font_defaultLabel = 'Arial';//字体编辑时的字符集可以添加常用的中文字符:宋体、楷体、黑体等 plugins/font/plugin.jsconfig.font_names = 'Arial;Times New Roman;Verdana';//文字的默认式样 plugins/font/plugin.jsconfig.font_style ={element : 'span',styles : { 'font-family' : '#(family)' },overrides : [ { element : 'font', attributes : { 'face' : null } } ]};//字体默认大小 plugins/font/plugin.jsconfig.fontSize_defaultLabel = '12px';//字体编辑时可选的字体大小 plugins/font/plugin.jsconfig.fontSize_sizes='8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18 px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px; 72/72px'//设置字体大小时使用的式样 plugins/font/plugin.jsconfig.fontSize_style ={element : 'span',styles : { 'font-size' : '#(size)' },overrides : [ { element : 'font', attributes : { 'size' : null } } ]};//是否强制复制来的内容去除格式 plugins/pastetext/plugin.js config.forcePasteAsPlainText =false //不去除//是否强制用“&”来代替“&”plugins/htmldataprocessor/plugin.jsconfig.forceSimpleAmpersand = false;//对address标签进行格式化 plugins/format/plugin.jsconfig.format_address = { element : 'address', attributes : { class : 'styledAddress' } };//对DIV标签自动进行格式化 plugins/format/plugin.jsconfig.format_div = { element : 'div', attributes : { class : 'normalDiv' } };//对H1标签自动进行格式化 plugins/format/plugin.jsconfig.format_h1 = { element : 'h1', attributes : { class : 'contentTitle1' } };//对H2标签自动进行格式化 plugins/format/plugin.jsconfig.format_h2 = { element : 'h2', attributes : { class : 'contentTitle2' } };//对H3标签自动进行格式化 plugins/format/plugin.jsconfig.format_h1 = { element : 'h3', attributes : { class : 'contentTitle3' } };//对H4标签自动进行格式化 plugins/format/plugin.jsconfig.format_h1 = { element : 'h4', attributes : { class : 'contentTitle4' } };//对H5标签自动进行格式化 plugins/format/plugin.jsconfig.format_h1 = { element : 'h5', attributes : { class : 'contentTitle5' } };//对H6标签自动进行格式化 plugins/format/plugin.jsconfig.format_h1 = { element : 'h6', attributes : { class :'contentTitle6' } };//对P标签自动进行格式化 plugins/format/plugin.jsconfig.format_p = { element : 'p', attributes : { class : 'normalPara' } };//对PRE标签自动进行格式化 plugins/format/plugin.jsconfig.format_pre = { element : 'pre', attributes : { class : 'code' } };//用分号分隔的标签名字在工具栏上显示plugins/format/plugin.jsconfig.format_tags = 'p;h1;h2;h3;h4;h5;h6;pre;address;div'//是否使用完整的html编辑模式如使用,其源码将包含:<html><body></body></html>等标签config.fullPage = false//编辑器的高度config.height = 200//是否忽略段落中的空字符若不忽略则字符将以“”表示plugins/wysiwygarea/plugin.jsconfig.ignoreEmptyParagraph = true//在清除图片属性框中的链接属性时是否同时清除两边的<a>标签 plugins/image/plugin.jsconfig.image_removeLinkByEmptyURL = true//界面的现实语言可选择"zh-cn"nguage = true//一组用逗号分隔的标签名称,显示在左下角的层次嵌套中plugins/menu/plugin.js.config.menu_groups='clipboard,form,tablecell,tablecellproperties,tablerow,tablecolu mn,table,anchor,link,image,flash,checkbox,radio,textfield,hidden field,imagebutton,button,select,textarea'//显示子菜单时的延迟,单位:ms plugins/menu/plugin.jsconfig.menu_subMenuDelay = 400;//当执行“新建”命令时,编辑器中的内容plugins/newpage/plugin.jsconfig.newpage_html=""//当从word里复制文字进来时,是否进行文字的格式化去除plugins/pastefromword/plugin.jsconfig.pasteFromWordIgnoreFontFace = true; //默认为忽略格式//是否使用<h1><h2>等标签修饰或者代替从word文档中粘贴过来的内容 plugins/pastefromword/plugin.jsconfig.pasteFromWordKeepsStructure = false;//从word中粘贴内容时是否移除格式plugins/pastefromword/plugin.jsconfig.pasteFromWordRemoveStyle = false//对应后台语言的类型来对输出的HTML内容进行格式化config.protectedSource.push( /<\?[\s\S]*?\?>/g ); // PHP Codeconfig.protectedSource.push( //g ); // ASP Codeconfig.protectedSource.push( /(]+>[\s|\S]*?<\/asp:[^\>]+>) |(]+\/>)/gi ); // Code默认为空//是否允许改变大小 plugins/resize/plugin.jsconfig.resize_enabled = true//改变大小的最大高度 plugins/resize/plugin.jsconfig.resize_maxHeight = 3000;//改变大小的最大宽度 plugins/resize/plugin.jsconfig.resize_maxWidth = 3000;//改变大小的最小高度 plugins/resize/plugin.jsconfig.resize_minHeight = 250;//改变大小的最小宽度 plugins/resize/plugin.jsconfig.resize_minWidth = 750;//当输入:shift+Enter是插入的标签config.shiftEnterMode = CKEDITOR.ENTER_P;//可选:CKEDITOR.ENTER_BR或CKEDITOR.ENTER_DIV//可选界面包config.skin = 'default';//可选的表情替代字符 plugins/smiley/plugin.js.config.smiley_descriptions = [':)', ':(', ';)', ':D', ':/', ':P','', '', '', '', '', '','', ';(', '', '', '', '','', ':kiss', '' ];//对应的表情图片 plugins/smiley/plugin.jsconfig.smiley_images = ['regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile. gif','confused_smile.gif','tounge_smile.gif','embaressed_smile.gif','omg_smile.gif','whatchutalkingabout _smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif', 'devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.g if','thumbs_up.gif','heart.gif','broken_heart.gif','kiss.gif','envelope.gif'];//表情的地址 plugins/smiley/plugin.jsconfig.smiley_path = 'plugins/smiley/images/'//页面载入时,编辑框是否立即获得焦点plugins/editingblock/plugin.js plugins/editingblock/plugin.js.config.startupFocus = false//载入时,以何种方式编辑源码和所见即所得"source"和"wysiwyg" plugins/editingblock/plugin.js.config.startupMode ='wysiwyg'//载入时,是否显示框体的边框 plugins/showblocks/plugin.js config.startupOutlineBlocks = false//是否载入样式文件 plugins/stylescombo/plugin.js.config.stylesCombo_stylesSet = 'default';//以下为可选config.stylesCombo_stylesSet = 'mystyles';config.stylesCombo_stylesSet = 'mystyles:/editorstyles/styles.js';config.stylesCombo_stylesSet = 'mystyles:/editorstyles/styles.js';//起始的索引值config.tabIndex =0//当用户键入TAB时,编辑器走过的空格数,( ) 当值为0时,焦点将移出编辑框 plugins/tab/plugin.jsconfig.tabSpaces = 0//默认使用的模板 plugins/templates/plugin.js.config.templates = 'default'//用逗号分隔的模板文件plugins/templates/plugin.js.config.templates_files=[ 'plugins/templates/templates/default.js' ]//当使用模板时,“编辑内容将被替换”框是否选中plugins/templates/plugin.jsconfig.templates_replaceContent = true;//主题config.theme = 'default';//使用的工具栏 plugins/toolbar/plugin.jsconfig.toolbar = ‘Full'这将配合:config.toolbar_Full =[['Source','-','Save','NewPage','Preview','-','Templates'],['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print','SpellChecker', 'Scayt'],['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField'],'/',['Bold','Italic','Underline','Strike','-','Subscript','Superscript'], ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],['Link','Unlink','Anchor'],['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar',' PageBreak'],'/',['Styles','Format','Font','FontSize'],['TextColor','BGColor']];//工具栏是否可以被收缩 plugins/toolbar/plugin.js.config.toolbarCanCollapse = true//工具栏的位置 plugins/toolbar/plugin.jsconfig.toolbarLocation = 'top';//可选:bottom//工具栏默认是否展开 plugins/toolbar/plugin.jsconfig.toolbarStartupExpanded = true;//撤销的记录步数 plugins/undo/plugin.jsconfig.undoStackSize =20//编辑器的宽度 plugins/undo/plugin.jsconfig.width = ""。
ckeditor plaintextpasteparameters
CKEditor是一个流行的网页文本编辑器,提供了许多功能和选项来满足用户的需要。
在CKEditor中,plaintextpaste参数用于控制粘贴文本时的行为。
当用户在CKEditor中粘贴文本时,plaintextpaste参数决定了粘贴的内容是纯文本还是保留格式。
如果将plaintextpaste参数设置为true,则粘贴的文本将保留纯文本格式,即不会保留原有的格式和样式。
这样可以避免粘贴时引入不必要的格式和样式,使得内容更加简洁和易于阅读。
如果将plaintextpaste参数设置为false或未设置,则粘贴的文本将保留原有的格式和样式。
这样可以保留用户原始输入的格式和样式,使得内容更加丰富和多样化。
通过设置plaintextpaste参数,你可以根据实际需求来选择适合的粘贴行为。
如果你希望粘贴的文本保持简洁和易于阅读,可以将plaintextpaste参数设置为true。
如果你希望保留用户原始输入的格式和样式,则可以将plaintextpaste参数设置为false或未设置。
FCKeditor使用方法详解目录一、FCKeditor简介 (2)1.1 FCKeditor是什么 (2)1.2 FCKeditor的特点 (3)二、安装与配置FCKeditor (5)三、基本功能使用方法 (6)3.1 文本格式化 (7)3.2 段落和列表操作 (9)3.3 图片和表格插入 (10)3.4 表单字段 (11)3.5 样式和脚本 (12)四、高级功能使用方法 (13)4.1 可视编辑器 (14)4.2 自动排版 (16)4.3 批量导入/导出 (17)4.4 国际化支持 (18)4.5 客户端存储 (20)五、自定义插件与扩展 (21)5.1 如何安装插件 (22)5.2 插件的使用方法 (24)5.3 开发自定义插件 (25)六、常见问题与解决方案 (27)6.1 常见问题列表 (28)6.2 问题解决步骤 (29)七、实例演示 (30)7.1 创建一个简单的HTML页面 (31)7.2 在页面中添加FCKeditor (32)7.3 配置和使用FCKeditor的各种功能 (34)八、FCKeditor在主流开发框架中的应用 (35)8.1 PHP+MySQL环境下的应用 (36)8.2 环境下的应用 (37)8.3 Java/Spring环境下的应用 (39)九、总结与展望 (39)9.1 FCKeditor的优点 (40)9.2 FCKeditor的局限性与未来发展趋势 (41)一、FCKeditor简介FCKeditor是一款由德国Maxthon公司开发的强大的网页文本编辑器,它具有丰富的功能、高度的可定制性和易用性,被广泛应用于各种Web应用中,如论坛、博客、新闻发布等。
FCKeditor不仅提供了基本的文本编辑功能,还支持图像、表格、超链接等元素的插入和编辑,以及自定义插件和宏,可以满足用户的各种编辑需求。
FCKeditor采用了基于JavaScript的富文本编辑技术,具有高效的性能和较小的体积,可以轻松地集成到各种Web应用中。
⼏款主流好⽤的富⽂本编辑器(所见即所得常⽤编辑器)介绍⼏款主流好⽤的富⽂本编辑器(所见即所得常⽤编辑器)介绍⾖⾖技术派 2019-09-15 03:31:35 245760 收藏 439分类专栏:编辑器⽂章标签:富⽂本⽂本编辑编辑器所见即所得开源版权编辑器专栏收录该内容4 篇⽂章4 订阅订阅专栏富⽂本编辑器 富⽂本编辑器(Rich Text Editor,RTE)是⼀种可内嵌于浏览器,所见即所得的⽂本编辑器。
它提供类似于Office Word 的编辑功能,⽅便那些不太懂HTML⽤户使⽤,富⽂本编辑器的应⽤⾮常⼴泛,它的历史与图⽂⽹页诞⽣的历史⼏乎⼀样长。
作为⼀个技术⼈员,⼿上备上两款富⽂本编辑器还是很有⽤的,指不定那个项⽬就要集成⼀个进去。
到时候现找现⽤那可就费功夫了,毕竟从开发上讲,每个富⽂本编辑器的⽤法都是有区别的。
下⾯是我收集的⼀些业界⽐较受欢迎的富⽂本编辑器,喜欢的朋友、⽤过的朋友可以⼀起看看,⼀起探讨。
1、TinyMCE TinyMCE是⼀个开源的所见即所得的HTML编辑器,界⾯相当清新,界⾯模拟本地软件的风格,顶部有菜单栏。
⽀持图⽚在线处理,插件多,功能⾮常强⼤,易于集成,并且拥有可定制的主题。
⽀持⽬前流⾏的各种浏览器,它可以达到微软Word类似的编辑体验。
⽽且这么好的东西还是开源免费的,⽬前⼀直有⼈维护,这款编辑器使⽤的⼈⾮常多。
2、CKEditor Ckeditor也是⼀款⾮常经典的富⽂本编辑器,官⽅下载量过千万。
它是在⾮常著名的FCkEditor基础上开发的新版本,FckEditor的⽤户现在基本都转移到Ckeditor了。
Ckeditor有⾼性能的实时预览,它特有⾏内编辑功能,使得编辑内容更加直观,仿佛是在编辑⽹页⼀样,有很强的可扩展性,被各⼤⽹站⼴泛运⽤。
3、UEditor UEditor 是由百度出品的富⽂本web编辑器,具有轻量,可定制,注重⽤户体验等特点,开源免费。
富文本编辑器ckeditor使用手册一.环境配置1 在web.xml配置servlet<servlet><servlet-name>multiform</servlet-name><servlet-class>com.newtouch.upload.servlet.MultiFormServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>multiform</servlet-name><url-pattern>/multiform</url-pattern></servlet-mapping>2 将插件ckeditor及upload文件夹(用于图片上传功能)添加至工程中。
二. 如何在项目中使用ckeditor?将标签textarea中的isRich属性设置为true即可textarea替换成ckeditor。
三.在textarea标签中有哪几个属性设置与ckeditor有关?分别有哪些作用?toolbarType:提供了三种工具栏的布局,分别是full,normal,basic。
customToolBar:如果在开发中有特殊的需求导致提供的三种默认的工具栏布局无法满足项目需求,开发者可以自定义工具栏中的选项,以及其排列。
开发者可以将所需要的工具栏以逗号为分隔符进行排列。
目前共提供12类工具栏。
(1)source:包含source按钮。
(2)system:系统类按钮,包括保存,新建,预览。
(3)templates:包含模板按钮,可以利用所提供的模板进行文字图片的编辑。
(4)textOperation:包括一些文本操作的按钮,例如剪切,复制,粘贴等。
十款优秀稳定的在线富文本编辑器CKeditorCKeditor是一款功能强大的开源在线文本编辑器(DHTML editor),它使你在web上可以使用类似微软Word 的桌面文本编辑器的许多强大功能。
它是轻量级且不必在客户端进行任何方式的安装。
官方网站:KindEditorKindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。
KindEditor使用JavaScript 编写,可以无缝的于Java、.NET、PHP、ASP等程序接合。
KindEditor非常适合在CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用,2006年7月首次发布2.0以来,KindEditor依靠出色的用户体验和领先的技术不断扩大编辑器市场占有率,目前在国内已经成为最受欢迎的编辑器之一。
官方网站:XheditorxhEditor是一个基于jQuery开发的简单迷你并且高效的可视化XHTML编辑器,基于网络访问并且兼容IE 6.0+,Firefox 3.0+,Opera 9.6+,Chrome 1.0+,Safari 3.22+。
xhEditor完全基于Javascript开发,您可以应用在任何的服务端语言环境下,例如:PHP、ASP、ASP. N E T、JA V A等。
xhEditor可以在您的CMS、博客、论坛、商城等互联网平台上完美的嵌入运行,能够非常灵活简单的和您的系统实现完美的无缝衔接。
官方网站:http://xheditor.c omNice ditNic Edit是一个轻量级,跨平台的Inline Content Editor。
Nic Edit能够让任何element/div 变成可编辑或者能够把标准的TextArea转换成富文本编辑器。
官方网站:http://nic TinymceTinyMCE是一个轻量级的基于浏览器的所见即所得编辑器,由JavaScript写成。
笔记之CKEditor的使⽤⽅法1、CKEditor原名FckEditor,著名的HTML编辑器,可以在线编辑HTML内容。
⾃⼰⼈⽤CKEditor,⽹友⽤UBBEditor。
配置参考⽂档,主要将ckeditor中的(adapters、images、lang、plugins、skins、themes、ckeditor.js、config.js、contents.css)解压到js⽬录,然后“显⽰所有⽂件”,将ckeditor的⽬录“包含在项⽬中”,在发帖页⾯引⽤ckeditor.js,然后设置多⾏⽂本框的class="ckeditor"(CSS强⼤)(服务端控件CssClass=" ckeditor ",客户端控件要设定cols、rows属性,⼀般不直接⽤html控件),代码中仍然可以通过TextBox控件的Text属性来访问编辑器内容。
由于页⾯提交的时候会把富⽂本编辑器中的html内容当成攻击内容,因此需要在aspx中的Page标签中设置ValidateRequest="false" 来禁⽤攻击检测(2010中还要根据报错信息修改WebConfig来禁⽤XSS检测)。
遇到错误如下:**修改WebConfig来禁⽤XSS检测当提交“<>”这些字符到aspx页⾯时,如果没有在⽂件头中加⼊“ValidateRequest="false"”这句话,就会出现出错提⽰:从客户端(<?xml version="...='UTF-8'?><SOAP-ENV:Envelope S...")中检测到有潜在危险的Request.Form 值。
如你是vs2008的⽤户,只要在aspx⽂件的开始部分,如下⽂所⽰处:复制代码代码如下:<%@ PageLanguage="C#" CodeBehind="News_add.aspx.cs" Inherits="CKEditor.Default" %>加上ValidateRequest="false"即可。
CKEditor 简介CKEditor 是一款功能强大的开源在线文本编辑器。
它所见即所得的特点,使你在编辑时所看到的内容和格式,能够与发布后看到的效果完全一致。
利用它,我们可以在Web 上实现类似于Microsoft Word 的许多强大的功能。
CKEditor 完全是基于JavaScript 开发的,因此不必在客户端进行任何安装,并且兼容各大主流浏览器,比如:IE,Firefox,Chrome,Safari,Opera。
而且由于它是一个纯粹的JavaScript 应用,所以无论用的是哪种服务器端技术(JSP,PHP,ASP 等等),都可以获得很好的支持。
CKEditor 的前身是FCKEditor,这个项目是在2003 年由Frederico Caldeira Knabben 发起的,FCK 代表的就是项目创建者Frederico Caldeira Knabben 的简称。
从3.0 版本后,它改名为CKEditor,CK 代表的含义是Content And Knowledge(内容与知识)。
现在,CKEditor 隶属于CKSource 公司,背后拥有一个强大的技术团队的支持。
在同类产品之中,CKEditor 的使用最为广泛,社区最为活跃,一直拥有良好的口碑。
目前,有很多公司都在使用CKEditor 作为Web 编辑的解决方案,比如:IBM,Oracle,Adobe 等等。
其中,IBM 已经在其所发布的多款软件中广泛应用了CKEditor,这些软件包括:Lotus Connections,Lotus Quickr,LotusLive,Lotus Notes,Rational Requirements Management 等等。
不仅如此,IBM 也为CKEditor 的发展,不遗余力地提供了持续性的投入与支持,在IBM 内部的产品团队中,有专业的开发人员负责CKEditor 的定制开发,还有专门的技术社区供大家讨论和交流。
竞争优势刚才我们提到,CKEditor 得到了众多厂商的青睐,被应用到各种商业产品当中。
那么CKEditor 是凭借什么打动了大家呢?齐全的功能一个Web 编辑器需要有哪些功能?撰写,粘贴,颜色,字体,段落,制表,拼写检查,凡是你想得到的,CKEditor 都已经提供在产品当中了。
在本文后续章节中,您将得到更详细的介绍。
良好的兼容性我们可能已经习惯于在我们的代码中,写下类似这样的语句:If isIE then {}。
然而,CKEditor 已经为你全部做好,你不用为浏览器的兼容多写一行代码。
目前,IE 6 及以上版本,Firefox 2 及以上版本,Safari 3 及以上版本,Opera 9.5 及以上版本,乃至问世不久的Google Chrome,都在支持的浏览器行列。
丰富的定制性一款出色的产品,都有着良好的可定制性。
CKEditor 在这方面表现得尤为出色。
开发者可以根据客户的需求,应用的场景,来配置编辑器的工具栏,更改编辑器的配色,增选必要的插件,并且可以通过CKEditor 提供的强大的API 和可扩展性作更多的高级定制。
本文接下来的内容将以实例展示CKEditor 基本的定制功能。
出色的性能在线编辑,性能是广大用户十分关注的一点。
无论是加载速度,还是使用时的响应速度,CKEditor 都有着出色的表现。
尤其是最新的3.x 版本,更是在性能优化方面下足了功夫,用户体验非常出众。
完整的辅助功能支持很多产品,都对软件的辅助功能支持有着严格的要求。
CKEditor 很好的支持了这些功能,为选用他的厂家解决了后顾之忧。
这些支持包括且并不限于屏幕阅读器,键盘导航,高对比度等。
优秀的开发团队CKEditor 本身,就是一个活跃高效的开发社区;伴随着如IBM 这样的主流软件开发商的选用与支持,CKEditor 在国际化,可编程性,高可用性方面都取得了长足的进展;并且,相信大量商用软件的选用,会给CKEditor 更好的可持续发展,更光明的未来。
功能特色盘点作为一个Web 文本编辑器,除了具备一些常用的基本功能外,CKEditor 还拥有许多独有的特色,接下来我们将对其做一盘点。
丰富的样式选择在CKEditor 中,我们不仅可以很方便地对编辑正文使用像粗体、斜体这样的简单样式,还可以使用带有语义规则的复杂样式。
这些样式可以预先定义好,使用时只需在样式下拉列表中选取即可。
如下图所示,利用预定义样式,我们还能够实现“彩笔”功能,对不同的文本进行着色标示,加以区分。
图 1. 样式选择为了便于导入Word 文档的内容,CKEditor 还提供了“从MS Word 粘贴”的功能,利用它,在本地Word 环境里所使用的编辑样式,会被原封不动的保留下来。
超强的编辑功能除了简单的链接插入外,CKEditor 还支持许多高级特性,比如我们可以选择点击链接后以弹出窗口的方式打开链接,并且我们还能进一步控制弹出窗口的各种属性。
图 2. 编辑链接对于E-mail 类型的链接,我们甚至还可以预先设置好邮件的标题和正文。
图 3. 电子邮件链接友好的用户界面为了方便文本编辑,尤其是处理大段文本或大尺寸图表的情况,CKEditor 提供了一个“最大化”功能,只要点击一下,编辑区域就可以延伸至整个窗口,从而使用户可以在更大空间范围内进行编辑。
任何时候,你还可以通过再次点击该按钮,将编辑区域还原。
此外,我们还可以拖拽编辑器右下角,根据自己的需要对编辑区域的大小进行任意调整。
如果你想了解当前文本的段落结构,可以选择“显示区块”的功能。
它会以可视化的方式显示出文档的各个段落,以便于你对文档结构进行有效的控制。
图 4. 显示区块对于页锚的插入,CKEditor 同样也采用了可视化的方式。
它会在插入页锚的位置放置一个标记,这使得我们对页锚的管理变得更加简单和直观。
此外,CKEditor 还提供了“查找和替换”功能,即使是混合样式的文字(比如一半是粗体一半是斜体),也照样能够正确捕获。
而在替换方面,CKEditor 还支持文字的批量替换。
丰富的内容支持除了文本,CKEditor 还支持插入图片、Flash、表格、表单等,以及表情符号和特殊符号等。
不仅如此,它还提供了模板功能。
使用“插入模板”这一功能,你可以复用预先定义好的HTML 模板,从而使网站页面布局保持一致的风格。
图 5. 模板贴心的可用性设计CKEditor 的可用性设计遵循了普通桌面应用的惯例,因此用户的使用体验与操作习惯与其他桌面应用非常的接近。
它还支持键盘操作,就是在没有鼠标的情况下,用户也可以不受任何限制的加以使用。
另外,CKEditor 还提供了上下文菜单,任何时候只要右键点击,CKEditor 便会将与当前使用情景相关的菜单项呈现出来。
如果使用过程中出现了误操作,还可以选择“撤销”功能,将当前文本恢复到误操作之前的状态。
CKEditor 也支持拼写检查。
不同之处在于,它是目前唯一一款不用任何附加安装就能支持拼写检查的Web 编辑器。
它采用了 提供的拼写检查服务,因而服务器端无需任何额外的安装。
最后,CKEditor 还兼容像W3C WCAG 和US Section 508 这样的国际易用性标准,所以残障用户也可以利用屏幕阅读器来使用它。
定制扩展作为一款高级的Web 文本编辑器,CKEditor 提供了一套丰富而强大的JavaScript API,利用它开发人员可以在运行时与编辑器进行交互,从而对编辑内容进行控制,并在原有编辑器的基础之上扩展出特定于自己应用需求的新功能。
由于CKEditor 的整体架构是构建在灵活的插件机制之上的,因此我们可以将特定的自定义功能独立于编辑器核心代码之外。
实际上,包括许多CKEditor 已有的预置功能,都是利用插件形式开发出来的。
因为不同的插件位于各自的文件中,所以管理和维护都很方便。
开发人员也可以根据需要开发属于自己的插件。
此外,为了方便定制工作,CKEditor 还为我们提供了一个详尽的配置文件,利用它我们可以对CKEditor 的各个方面进行灵活的定制,比如:编辑器的行为,界面风格样式,编辑内容的HTML 输出,等等。
有了上述这些手段,我们可以很方便的从工具栏,主题风格,对话框,上下文菜单,直至数据解析等,对CKEditor 实施全方位的随需定制。
新手上路接下来,我们用一些简单的例子为读者展示CKEditor 的基本使用。
环境的准备我们将从CKEditor 的官方网站下载的开发包解压,与其他必要的Web 文件如HTML、CSS,JavaScript 等放在一起。
示例代码的文件布局如图6 所示。
图 6. 文件布局在图中,我们将CKEditor 的全部程序文件放在js/ckeditor 中。
目录js/ 还存放了其他需要的,包括我们自己编写的JavaScript。
CKEditor 的基本使用CKEditor 的使用非常容易。
只需要很少的代码就可以在页面中载入一个完整功能的编辑器。
使用您喜欢的任何文本编辑器,编辑如下内容,将其存放在与目录js/ 平级的目录中。
在浏览器中的运行效果见图7。
图7. 完整的CKEditor在上面的代码中,语句<script type="text/javascript" src="js/ckeditor/ckedito r.js"></script>载入完整的CKEditor 执行代码。
注意在清单1 的代码中,我们并没有使用任何语句初始化这个编辑器。
只是定义了一个缺省地,CKEditor 的执行代码在完整载入后,会在所在页面的BODY 元素中寻找CSS class 为ckeditor 的<textarea>HTML 元素,将其替换为完整功能的CKEditor。
这一过程中,寻找的CSS 类名,以及是否进行这样的替换,都是可配置的。
关于如何配置,则超出了本文的范围,在此不再赘述。
除了令CKEditor 自动进行<textarea> 元素的替换外,我们也可以使用JavaScript 代码让CKEditor 替换特定的<div> 以及<textarea> 元素。
参见代码清单2。
清单 2. 替换div 元素代码清单2 中,我们在BODY 元素的onload 事件中调用函数onLoad。
在函数中,语句CKEDITOR.replace("editor2");在BODY 中寻找ID 为editor2 的<div> 元素或<textarea> 元素并将其替换为完整功能的CKEditor。
在通常的CKEditor 应用中,清单 2 的代码是更加常用的。