`
whp0731
  • 浏览: 174815 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Fckeditor学习研究整理笔记

    博客分类:
  • fck
阅读更多

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学习笔记

    fckeditor学习笔记 FCKEditor的调用: 方法一:通过javascript调用(前提是在head里要引入&lt;script type="text/javascript" src="fckeditor/fckeditor.js"&gt;文件) 1.创建并输出一个编辑器(参见fckeditortest项目test1...

    Fckeditor 漏洞最新整理.

    ### Fckeditor 漏洞最新整理 #### 一、简介 FCKeditor(现更名为CKEditor)是一款广泛使用的开源富文本编辑器,在诸多网站及应用中都有其身影。然而,随着时间的发展和技术的进步,该编辑器逐渐暴露出一些安全问题...

    FCKEDITOR学习笔记资料.pdf

    【FCKEditor简介】 FCKeditor是一款基于JavaScript的开源富文本编辑器,它以其功能强大、配置简单、跨浏览器兼容性好以及支持多种编程语言(如Java、ASP、PHP等)而受到广泛关注。这款编辑器允许用户在网页上实现...

    传智播客 fckeditor 笔记

    **传智播客FCKeditor笔记** FCKeditor是一款开源的网页文本编辑器,它允许用户在网页上编辑内容,...这份笔记是基于传智播客的课程整理而成,希望能对你的学习有所帮助,如果你觉得有价值,不妨分享给更多需要的人。

    整理好后的fckeditor

    "整理好后的fckeditor"意味着这个压缩包包含了经过优化和配置的FCKeditor,可以直接在项目中使用,无需进行复杂的安装或配置过程。 ### FCKeditor的主要特点 1. **跨平台兼容性**:FCKeditor支持多种操作系统和...

    FCKeditor 使用笔记

    ### FCKeditor 使用笔记 #### 一、简介 FCKeditor 是一款强大的在线富文本编辑器,被广泛应用于各种Web应用程序中。它支持多种格式的文本编辑与处理,并且能够轻松地集成到JSP等Web应用中。本文将详细介绍如何在...

    FCKEditor 笔记

    这篇学习笔记将详细介绍如何在项目中集成和配置FCKEditor,以及解决在使用过程中可能遇到的问题。 首先,引入FCKEditor到J2EE项目中,你需要在JSP页面中添加相应的标签库引用。例如,添加以下代码: ```jsp ...

    fckeditor(简化整理,带有上传功能)

    FCKeditor的简化整理版针对图片上传进行了优化,提供了一个安全、高效的图片管理环境。其自动命名机制和单一的图片上传功能增强了系统安全性,同时也为用户带来了便捷的编辑体验。对于开发者来说,这个版本的...

    fckeditor学习心得(一)

    本文将基于标题“fckeditor学习心得(一)”和提供的标签“源码”与“工具”,结合压缩包内的文档名称“fckeditor编辑器学习心得.doc”,分享关于`FCKeditor`的一些关键知识点和学习经验。 `FCKeditor`是一款基于...

    fckeditor源文件和demo

    源代码中包含了编译和构建项目的必要文件,这对于学习和扩展FCKeditor的功能至关重要。 3. **fckeditor-java-2.5-bin.zip**:这是FCKeditor的Java二进制版本,包含编译后的类库和必要的资源文件。开发者可以直接将...

    FCKeditor 2.6.6 可直接使用

    开发者可能会选择FCKeditor因为其较低的学习曲线和更少的更新维护工作。 **在.NET环境中的应用** 标签提到了".net编辑器",这意味着FCKeditor在.NET Framework环境下也有良好的应用。.NET开发者可以利用ASP.NET...

    FCKEDITOR_ASP版

    通过参考链接中的博客文章(http://blog.csdn.net/duan618/article/details/5420528),可以学习如何在ASP项目中正确配置和使用FCKeditor,包括上传功能的实现、自定义按钮的添加以及与数据库交互的方法等。

    FCKeditor笔记和中文名图片显示

    **标题:“FCKeditor笔记和中文名图片显示”** 这篇笔记主要探讨了FCKeditor的使用,特别是关于在编辑器中处理中文命名的图片显示问题。FCKeditor是一款开源的富文本编辑器,广泛应用于网站内容管理系统(CMS)中,...

    FCKEditor

    通过研究这些文件,开发者可以定制自己的FCKEditor实例,满足特定需求。 总的来说,FCKEditor是一个学习Web开发尤其是前端交互和富文本处理的优秀案例。通过深入理解其源码,开发者不仅能掌握编辑器的工作原理,还...

    FCKeditor

    **FCKeditor** 是一个非常流行的开源富文本编辑器,广泛应用于Web开发中,使得用户可以在网页上方便地编辑和格式化文本,包括插入图片、链接等操作。它支持多种编程语言,如JavaScript、ASP、ASP.NET、PHP、JSP等,...

    FCKeditor.Net_2.6.3.zip和FCKeditor-v2.6.3

    FCKeditor是一款强大的开源文本编辑器,主要用于网页内容的创建和编辑。它的名称来源于"Freeware Complete Kit for Web Editors"的首字母缩写,旨在提供一个功能丰富的HTML编辑器,让非技术人员也能轻松编辑网页内容...

    FckEditor有用的资源

    **FckEditor**,全称为"FCKeditor"(FCK standing for "Frédéric's Cool Editor"),是一款基于JavaScript的开源富文本编辑器。这款编辑器最初由Fréd...对于前端开发者来说,FCKeditor是一个值得研究和掌握的工具。

Global site tag (gtag.js) - Google Analytics