Fckeditor学习笔记
配置fckeditor工程
1、新建web project
2、引入以下5个jar包,可以见工程中的reference library
3、js的使用可参见test1.html和test2.html,刚好对应官方文档中的以下两种方法
(http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Integration/JavaScript)
Step 1
The first thing to do is to include the "JavaScript Integration Module" scripts inside the <HEAD> of your page, just like this:
<script type="text/javascript"src="fckeditor/fckeditor.js"></script>
Step 2
Now the FCKeditor class is available and ready to use. There are three ways to create an FCKeditor in your page:
Method 1
The inline method (preferred): Go to the body of your page, to the place you want the editor to be (usually inside a form) and place the following
script there:
<script type="text/javascript">
var oFCKeditor = new FCKeditor('FCKeditor1');
oFCKeditor.BasePath = "/fckeditor/";
oFCKeditor.Create();
</script>
Method 2
The TEXTAREA replacement method:
In <HEAD> add the "onload" method:
<script type="text/javascript">
window.onload = function()
{
var oFCKeditor = new FCKeditor( 'MyTextarea' ) ;
oFCKeditor.BasePath = "/fckeditor/" ;
oFCKeditor.ReplaceTextarea() ;
}
</script>
In <BODY> add the below code to replace an existing TEXTAREA in the page:
<textarea id="MyTextarea" name="MyTextarea">This is <b>the</b> initial value.</textarea>
4、jsp的使用可参见editor.jsp
需要在jsp页面中加
<%@ taglib uri="http://java.fckeditor.net" prefix="FCK"%>
<body>
<FCK:editor instanceName="myEditor" basePath="/fckeditor" value= "this is comment">
</FCK:editor>
</body>
注意,官方文档上还要求修改server.xml,增加以下内容
<servlet>
<servlet-name>Connector</servlet-name>
<servlet-class>
net.fckeditor.connector.ConnectorServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Connector</servlet-name>
<url-pattern>
/fckeditor/editor/filemanager/connectors/*
</url-pattern>
</servlet-mapping>
创建一个文件 fckeditor.properties,in your classpath (即src下)文件内容如下:
connector.userActionImpl=net.fckeditor.requestcycle.impl.UserActionImpl
一、修改配置的三中方法
方法1、直接修改配置文件fckconfig.js
方法2、定义单独的配置文件(只需要写需要修改的配置项)
方法3、在页面的调用代码中对fckeditor的实例进行配置
二、配置加载顺序
1、先加载主配置文件fckconfig.js
2、加载自定义文件配置会覆盖相同的配置项
3、使用对实例的配置会覆盖相同的配置项(只对当前的实例有效)
三、注意
1、系统会自动侦测并运用适当的语言界面(默认,可以修改)
2、不能删除主配置文件fckconfig.js
3、修改配置后要清空浏览器缓存,以免影响结果(或访问时强制刷新也可以IE中是Ctrl+F5)
四、修改配置信息--工具集配置(方法2、定义单独的配置文件,只需要写需要修改的配置项)
1)、文档中对应配置集的选项网页为http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options/ToolbarSets
2)、先拷贝ToolbarSets["Default"]功能,为下面修改做好准备
FCKConfig.ToolbarSets["Default"] = [
['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
'/',
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
'/',
['Style','FontFormat','FontName','FontSize'],
['TextColor','BGColor'],
['FitWindow','ShowBlocks','-','About'] // No comma for the last row.
] ;
3)、在拷贝的基础上修改自定义工具集
FCKConfig.ToolbarSets["itcastbbs"] = [
['Source','DocProps'],
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
'/',
['Style','FontFormat','FontName','FontSize'],
['TextColor','BGColor'],
['FitWindow','ShowBlocks','-','About'] // No comma for the last row.
] ;
4)在创建myconfig.js,将该自定义工具集放入myconfig.js
5)在fckconfig.js页面中申明以上自定义myconfig.js如下//此处用的是绝对路径,下文还使用了相对路径,发布时建意用相对路径。
FCKConfig.CustomConfigurationsPath ='/test/myconfig.js';
在test2.jsp测试页面中申明如下:
oFCKeditor.ToolbarSet="itcastbbs";
5)、此时刷新原来的test2.html便可以看到自定义的工具集了。
五、修改配置信息--字体的配置
A、原字体的配置在fckconfig中为
FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
B、拷贝上面的
FCKConfig.FontNames= 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;到myconfig.js文件
C、修改为
FCKConfig.FontNames='宋体;楷体_GB2312;黑体;隶书;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
六、修改回车和shift+回车行为
A、原回车和shift+回车行为的配置在fckconfig中为 FCKConfig.EnterMode = 'p' ; // p | div | br
FCKConfig.ShiftEnterMode = 'br' ; // p | div | br
B、拷贝上面的到myconfig.js文件
C、修改为FCKConfig.EnterMode = 'br' ; // p | div | br
FCKConfig.ShiftEnterMode = 'p' ; // p | div | br
七、修改编辑区样式文件
A、原编辑区样式文件在fckconfig中为 FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;
注意,这个属性FCKConfig.BasePath和test2.html页面中oFCKeditor.BasePath = "/test/fckeditor/" ;的BasePath不是同一个概念。
B、FCKConfig.BasePath代表了样式文件所在的文件夹,本例中在fckeditor/editor文件夹下
C、开发时可以把自己的样式加在fck_editorarea.css文件中。
八、配置表情图片
A、原配置表情图片在fckconfig中为
FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/' ;
FCKConfig.SmileyImages =
['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','thu
mbs_down.gif','thumbs_up.gif','heart.gif','broken_heart.gif','kiss.gif','envelope.gif'] ;
FCKConfig.SmileyColumns = 8 ;
FCKConfig.SmileyWindowWidth = 320 ;
FCKConfig.SmileyWindowHeight = 210 ;
说明:上面FCKConfig.SmileyPath指表情图片所在的文件夹
FCKConfig.SmileyImages配置文件夹中那些图片将会被用到
FCKConfig.SmileyColumns每行显示几个
FCKConfig.SmileyWindowWidth表情图片的宽度
FCKConfig.SmileyWindowHeight表情图片的高度
注意:
1、要使用UTF-8编码保存配置文件
2、注意,这个属性FCKConfig.BasePath和test2.html页面中oFCKeditor.BasePath = "/test/fckeditor/" ;的BasePath不是同一个概念。
3、发布时不能再使用绝对路径
如原先myconfig.js是放在webroot下的,使用的是FCKConfig.CustomConfigurationsPath ='/test/myconfig.js'; 配置
现在需要把myconfig.js文件移到fckeditor文件夹下,并且用相对路径配置如下FCKConfig.CustomConfigurationsPath =FCKConfig.EditorPath+"myconfig.js";
九、配置文件上传及中文乱码问题
1、准备工作
A、 Declare the ConnectorServlet in your web.xml
<servlet>
<servlet-name>Connector</servlet-name>
<servlet-class>
net.fckeditor.connector.ConnectorServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Connector</servlet-name>
<url-pattern>
/fckeditor/editor/filemanager/connectors/*
</url-pattern>
</servlet-mapping>
</web-app>Assuming you installed the editor in the /fckeditor folder in your webapp.
The Connector is now declared but still disabled. The response is going to be an error message.
B、创建一个文件 fckeditor.properties,in your classpath (即src下)文件内容如下:
connector.userActionImpl=net.fckeditor.requestcycle.impl.UserActionImpl
2、文件中文名乱码问题
是在服务器端上传时出现的乱码。
解决方法
1)、在我的test项目中ConnectorServlet.java类,类的内容与net.fckeditor.connector.ConnectorServlet.java内容一致
2)、然后修改该类,在该类的doPost()方法中try {
List<FileItem> items = upload.parseRequest(request);
语句前加上如下语句:
upload.setHeaderEncoding("UTF-8");
这样就不会出现乱码了
3)、在上述A步骤中servlet配置中需要修改以下内容:
将原来的 <servlet-class>
net.fckeditor.connector.ConnectorServlet
</servlet-class>
修改为
<servlet-class>
com.symbio.hz.fckeditor.ConnectorServlet
</servlet-class>
重启服务器可以完成中文文件名的图片的上传了!
3、中文目录乱码问题
1)同上修改文件名乱码(1)
2)修改doGet()方法中的
String newFolderStr = UtilsFile.sanitizeFolderName(request
.getParameter("NewFolderName"));
为
String tempStr=request.getParameter("NewFolderName");
tempStr=new String(tempStr.getBytes("iso8859-1"),"UTF-8");
String newFolderStr = UtilsFile.sanitizeFolderName(tempStr);
3)、同上修改文件名乱码(3)
4、引用中文名的图片显示时不能正常使用。
1)此时需要修改tomcat连接器的配置。但是此方法不好,会对get方法提交的内容造成乱码
在 <Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
增加一项配置 URIEncoding="UTF-8"如下
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
2)方法二:
还是和以上解决中文文件名一样,修改ConnectorServlet.java
doPost方法中修改代码
if (!ExtensionsHandler.isAllowed(resourceType, extension))
ur = new UploadResponse(UploadResponse.SC_INVALID_EXTENSION);
else {
为//此处修改filename的目的是为了避免显示图片时因中文名而无法预览。
filename=UUID.randomUUID().toString()+"."+extension;
if (!ExtensionsHandler.isAllowed(resourceType, extension))
ur = new UploadResponse(UploadResponse.SC_INVALID_EXTENSION);
else {
十、控制允许上传的文件类型
1、在java-core核心包中的类net.fckeditor.handlers中
复制需要修改的内容到
上文提到的在src下新建的fckeditor.propertis
例如复制
connector.resourceType.image.extensions.allowed = bmp|gif|jpeg|jpg|png
修改为connector.resourceType.image.extensions.allowed = bmp|gif|jpeg|jpg|png|abc
2、需要修改相应的客户端的配置文件,即上文中提到的myconfig.js
在fckconfig.js中找到FCKConfig.ImageUploadAllowedExtensions = ".(jpg|gif|jpeg|png|bmp)$" ;
拷贝到myconfig.js(待续)
修改为FCKConfig.ImageUploadAllowedExtensions = ".(jpg|gif|jpeg|png|bmp|abc)$" ;
那么以abc结尾的格式的图片也可以上传了。
3、各类上传文件类型修改时对应操作如下如
4、上传时控制文件大小
十一、控制上传文件的大小
1、在服务器端的servlet中,在保存文件之前判断一下文件的大小,如果超出了限制,就传递一个自定义的错误码,并不在保存文件
2、修改对应页面的回调函数,增加对这个自定义的错误码的处理。
3、具体操作
1)修改自己创建的ConnectorServlet.java类在原文件位置
if (!ExtensionsHandler.isAllowed(resourceType, extension)){
ur = new UploadResponse(UploadResponse.SC_INVALID_EXTENSION);
的下方增加为
//如果该文件的扩展名不允许上传
if (!ExtensionsHandler.isAllowed(resourceType, extension)){
ur = new UploadResponse(UploadResponse.SC_INVALID_EXTENSION);
}
//如果文件大小超出限制,则传递一个自定义的错误码
else if(uplFile.getSize()>10*1024*1024){
ur = new UploadResponse(204);//204来历看下面第2)点
}
2)在上传页面上点击右键看属性,找到文件为找到文件fck_image.html,根据这个文件看它引用了哪个js文件,找到了文件
fck_image.js,打开该文件(路径为/fckeditor/editor/dialog/fck_image/fck_image.js)看到错误码204还未被使用。
添加如下代码case203下面
case 204 :
alert( "the file is too big" ) ;++++++
return ;
3)修改页面frmupload.html的回调函数,增加对这个自定义的错误码的处理。修改方法同上。
4)若要把提示信息都改成中文,修改方法在对应的页面中把提示信息改成中文就可以了
case 204 :
alert( "你上传的文件超过规定大小" ) ;
return ;
- 大小: 93.3 KB
分享到:
相关推荐
FCKeditor 学习笔记
fckeditor学习笔记 FCKEditor的调用: 方法一:通过javascript调用(前提是在head里要引入<script type="text/javascript" src="fckeditor/fckeditor.js">文件) 1.创建并输出一个编辑器(参见fckeditortest项目test1...
### Fckeditor 漏洞最新整理 #### 一、简介 FCKeditor(现更名为CKEditor)是一款广泛使用的开源富文本编辑器,在诸多网站及应用中都有其身影。然而,随着时间的发展和技术的进步,该编辑器逐渐暴露出一些安全问题...
【FCKEditor简介】 FCKeditor是一款基于JavaScript的开源富文本编辑器,它以其功能强大、配置简单、跨浏览器兼容性好以及支持多种编程语言(如Java、ASP、PHP等)而受到广泛关注。这款编辑器允许用户在网页上实现...
**传智播客FCKeditor笔记** FCKeditor是一款开源的网页文本编辑器,它允许用户在网页上编辑内容,...这份笔记是基于传智播客的课程整理而成,希望能对你的学习有所帮助,如果你觉得有价值,不妨分享给更多需要的人。
"整理好后的fckeditor"意味着这个压缩包包含了经过优化和配置的FCKeditor,可以直接在项目中使用,无需进行复杂的安装或配置过程。 ### FCKeditor的主要特点 1. **跨平台兼容性**:FCKeditor支持多种操作系统和...
### FCKeditor 使用笔记 #### 一、简介 FCKeditor 是一款强大的在线富文本编辑器,被广泛应用于各种Web应用程序中。它支持多种格式的文本编辑与处理,并且能够轻松地集成到JSP等Web应用中。本文将详细介绍如何在...
这篇学习笔记将详细介绍如何在项目中集成和配置FCKEditor,以及解决在使用过程中可能遇到的问题。 首先,引入FCKEditor到J2EE项目中,你需要在JSP页面中添加相应的标签库引用。例如,添加以下代码: ```jsp ...
FCKeditor的简化整理版针对图片上传进行了优化,提供了一个安全、高效的图片管理环境。其自动命名机制和单一的图片上传功能增强了系统安全性,同时也为用户带来了便捷的编辑体验。对于开发者来说,这个版本的...
本文将基于标题“fckeditor学习心得(一)”和提供的标签“源码”与“工具”,结合压缩包内的文档名称“fckeditor编辑器学习心得.doc”,分享关于`FCKeditor`的一些关键知识点和学习经验。 `FCKeditor`是一款基于...
源代码中包含了编译和构建项目的必要文件,这对于学习和扩展FCKeditor的功能至关重要。 3. **fckeditor-java-2.5-bin.zip**:这是FCKeditor的Java二进制版本,包含编译后的类库和必要的资源文件。开发者可以直接将...
开发者可能会选择FCKeditor因为其较低的学习曲线和更少的更新维护工作。 **在.NET环境中的应用** 标签提到了".net编辑器",这意味着FCKeditor在.NET Framework环境下也有良好的应用。.NET开发者可以利用ASP.NET...
通过参考链接中的博客文章(http://blog.csdn.net/duan618/article/details/5420528),可以学习如何在ASP项目中正确配置和使用FCKeditor,包括上传功能的实现、自定义按钮的添加以及与数据库交互的方法等。
**标题:“FCKeditor笔记和中文名图片显示”** 这篇笔记主要探讨了FCKeditor的使用,特别是关于在编辑器中处理中文命名的图片显示问题。FCKeditor是一款开源的富文本编辑器,广泛应用于网站内容管理系统(CMS)中,...
通过研究这些文件,开发者可以定制自己的FCKEditor实例,满足特定需求。 总的来说,FCKEditor是一个学习Web开发尤其是前端交互和富文本处理的优秀案例。通过深入理解其源码,开发者不仅能掌握编辑器的工作原理,还...
**FCKeditor** 是一个非常流行的开源富文本编辑器,广泛应用于Web开发中,使得用户可以在网页上方便地编辑和格式化文本,包括插入图片、链接等操作。它支持多种编程语言,如JavaScript、ASP、ASP.NET、PHP、JSP等,...
FCKeditor是一款强大的开源文本编辑器,主要用于网页内容的创建和编辑。它的名称来源于"Freeware Complete Kit for Web Editors"的首字母缩写,旨在提供一个功能丰富的HTML编辑器,让非技术人员也能轻松编辑网页内容...
**FckEditor**,全称为"FCKeditor"(FCK standing for "Frédéric's Cool Editor"),是一款基于JavaScript的开源富文本编辑器。这款编辑器最初由Fréd...对于前端开发者来说,FCKeditor是一个值得研究和掌握的工具。