一个绝好的在线html编辑器-fck

fck,这个名字大家听起来一定非常熟悉吧,差一个字母就变成fuck了,怎么,有感觉了吧!一个绝好的在线html编辑器-fck
目前来说,我对fck的感觉还不错。fck的全称是FCKeditor,官司网站:http://www.fckeditor.net/,大家有兴趣的可去下载试试,里面有非常详细的教程,足够你入门的!
当前FCKeditor对IE的支持很好,2.4版本修改了以前在Mozilla Firefox中不能正常工作的缺陷。
在jsp下使用FCKeditor是非常容易的,在FCKeditor的表中带有一个在JSP下使用Taglib,通过调用这个taglib,很容易使用FCKeditor,也可以使用里面的类库可以实现,具体实现方式可到其网站下载FCKeditor-2.3.zip包,在FCKeditor-2.3\web\_samples\jsp下有多个例子,大家可选择自己喜欢的实现方式!
和另一个在线html编辑器HtmlEditor相比,fck带有明显的易用性和扩展性,大家可以在里面随意定义自己喜欢的按钮还可修改类或配置文件来设置自己喜欢的功能!

下面介绍一下我的实现方式,首先下载FCKeditor_2.4.3和FCKeditor-2.3包,FCKeditor-2.3包是jsp的实现方式,在WebRoot下新建一个目录fck,解压 FCKeditor_ 2.3包,将其中的editor文件夹到项目中的fck目录,将其中的 fckconfig.js、fckeditor.js、fckstyles.xml、fcktemplates.xml 文件夹到项目中的fck目录.
解压 FCKeditor.java-2.4包,将其中的lib下的两个jar文件到项目的lib目录,并将其中的解压后\src下的FCKeditor.tld 文件拷贝到项目的WEB-INF目录下,删除 editor目录下的_source 文件夹(以“_”开始的文件,在项目中无用)
完成后的工程结构如下
一个绝好的在线html编辑器-fck
 
修改web.xml文件,加入FCKeditor的配置信息,如下:

 

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>
  <display-name>FCKeditor Test Application</display-name>
 
 <servlet>
  <servlet-name>Connector</servlet-name>
  <servlet-class>com.fredck.FCKeditor.connector.ConnectorServlet</servlet-class>
  <init-param>
      <!-- 此为文件浏览路径 -->  
   <param-name>baseDir</param-name>
   <param-value>/fck/UserFiles/</param-value>
  </init-param>
  <init-param>
   <param-name>debug</param-name>
   <param-value>true</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>

 <servlet>
  <servlet-name>SimpleUploader</servlet-name>
  <servlet-class>com.fredck.FCKeditor.uploader.SimpleUploaderServlet</servlet-class>
  <init-param>
  <!-- 此为文件上传路径,需要在WebRoot 目录下新建 UserFiles 文件夹 -->  
        <!-- 根据文件的类型还需要新建相关的文件夹 Image、Flash -->  
   <param-name>baseDir</param-name>
   <param-value>/fck/UserFiles/</param-value>
  </init-param>
  <init-param>
   <param-name>debug</param-name>
   <param-value>true</param-value>
  </init-param>
  <init-param>
       <!-- 此参数为是否开启上传功能 -->  
   <param-name>enabled</param-name>
   <param-value>false</param-value>
  </init-param>
  <init-param>
   <param-name>AllowedExtensionsFile</param-name>
   <param-value></param-value>
  </init-param>
  <init-param>
   <!--  此参数为文件过滤,以下的文件类型都不能上传  --> 
   <param-name>DeniedExtensionsFile</param-name>
   <param-value>php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi</param-value>
  </init-param>
  <init-param>
   <param-name>AllowedExtensionsImage</param-name>
   <param-value>jpg|gif|jpeg|png|bmp</param-value>
  </init-param>
  <init-param>
   <param-name>DeniedExtensionsImage</param-name>
   <param-value></param-value>
  </init-param>
  <init-param>
   <param-name>AllowedExtensionsFlash</param-name>
   <param-value>swf|fla</param-value>
  </init-param>
  <init-param>
   <param-name>DeniedExtensionsFlash</param-name>
   <param-value></param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>

  <servlet-mapping>
    <servlet-name>Connector</servlet-name>
    <url-pattern>/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>
  </servlet-mapping>
 
  <servlet-mapping>
    <servlet-name>SimpleUploader</servlet-name>
    <url-pattern>/editor/filemanager/upload/simpleuploader</url-pattern>
  </servlet-mapping> 

</web-app>

 

注意上面的baseDir,默认是跟路径,你要在所配置的路径新建一个文件目录

下面是我写的测试文件

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://fckeditor.net/tags-fckeditor" prefix="FCK" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
 <head>
  <title>FCK</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta name="robots" content="noindex, nofollow">
  <link href="../sample.css" rel="stylesheet" type="text/css">
   <script type="text/javascript" src="../../fckeditor.js"></script>
   <script type="text/javascript">

function FCKeditor_OnComplete( editorInstance )
{
 var oCombo = document.getElementByIdx( 'cmbToolbars' ) ;
 oCombo.value = editorInstance.ToolbarSet.Name ;
 oCombo.style.visibility = '' ;
}

function ChangeLanguage( languageCode )
{
 window.location.href = window.location.pathname + "?toolbar=" + languageCode ;
}

   </script>
 </head>
<%

String toolBarSetStr=request.getParameter("toolbar");
if(toolBarSetStr==null) {
 toolBarSetStr="";
}
String path = request.getContextPath();
%> 
 <body>
 
  <table cellpadding="0" cellspacing="0" border="0">
   <tr>
    <td>
     Select the toolbar to load:&nbsp;
    </td>
    <td>
     <select id="cmbToolbars" onchange="ChangeLanguage(this.value);" style="VISIBILITY: hidden">
      <option value="Default" selected>Default</option>
      <option value="Basic">Basic</option>
     </select>
    </td>
   </tr>
  </table>
  <br>
  <form action="../1.jsp" method="post" target="_blank">
   <FCK:editor id="fck" basePath="/blog/fck/"
    toolbarSet="<%=toolBarSetStr%>"
    imageBrowserURL="${path}/fck/editor/filemanager/browser/default/browser.html?Type=Image&Connector=${path}/editor/filemanager/browser/default/connectors/jsp/connector"
    linkBrowserURL="${path}/fck/editor/filemanager/browser/default/browser.html?Connector=${path}/editor/filemanager/browser/default/connectors/jsp/connector"
    flashBrowserURL="${path}/fck/editor/filemanager/browser/default/browser.html?Type=Flash&Connector=${path}/editor/filemanager/browser/default/connectors/jsp/connectorr"
    imageUploadURL="${path}/editor/filemanager/upload/simpleuploader?Type=Image"
    linkUploadURL="${path}/editor/filemanager/upload/simpleuploader?Type=File"
    flashUploadURL="${path}/editor/filemanager/upload/simpleuploader?Type=Flash">
    </FCK:editor>
   <br>
   <input type="submit" value="Submit">
  </form>
 </body>
</html>

这里要注意的是路径问题,Connector和SimpleUploader是已经在wb.xml中配置过的servlet文件,所以在这里只需要在前面加${path}就够了,至于basePath,你在文件目录在那里,你就配那里!

这里密切要注意的是id="fck",这个id就是要提交的内容,在接受方这样,例如:

   String str = request.getParameter("fck");
   out.println(str);

就可以把内容显示出来或自己实现写入数据库

如果我只想用编辑器里的源代码,图像,falsh,超链接等几个功能,其他的不用,也不让它们显示出来,要怎么弄呢?

你只需要修改fckconfig.js就够了

选择你所喜欢的吧

  • FCKConfig.ToolbarSets["Default"] = [   
  •     ['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],   
  •     ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],   
  •     ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],   
  •     ['OrderedList','UnorderedList','-','Outdent','Indent'],   
  •     ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],   
  •     ['Link','Unlink','Anchor','Image','Flash'],   
  •     ['TextColor','BGColor','Table','Rule'],   
  •     ['Style','FontFormat','FontName','FontSize']   
  • ] ;

 

这只是一篇提供入门的文章,大家有兴趣的可去深入研究!有心得大家再讨论!

posted @ 2015-04-22 11:24  萧痕♂泪  阅读(521)  评论(0)    收藏  举报