HTML编辑器在JAVA WEB下的应用研究

2014-12-09 23:29童莹
无线互联科技 2014年11期

童莹

摘 要:本文介绍了HTML编辑器的基本功能,分析了它的基本原理及基本调用方式。通过对不同原理的HTML编辑器的分析,剖析其各自所具有的优缺点。最后阐述了目前常用的HTML编辑器KindEditor在JAVA WEB下应用的具体步骤。

关键词:html编辑器;KindEditor;JAVA

1 引言

在WEB应用开发中,完成与用户交互最主要的方式是用户信息的提交、反馈和言论的发布、交流。随着网页交互更注重用户体验,发布信息的内容不再仅只是简单的文字,而是拥有个性化表情、图片、以及各种格式文本的信息。传统HTML表单输入元素已经远远不能满足用户富文本的编辑需求。在编辑信息的同时,WEB应用程序需要对用户填写的数据进行格式转换,才能让用户将所发布的信息以其所期望的效果显示在Web页面上。

HTML编辑器就是用来依据用户需求来编辑网页元素显示效果的工具,编辑的内容是基于HTML的文档。因其可用于编辑基于HTML的文档,所以经常被应用到诸如:网站留言板、论坛发贴、博客日志的编写、网站后台信息管理等需要用户输入富文本信息的地方,是当前Web交互式应用的常用模块之一。

2 HTML编辑器的基本原理

HTML编辑器是用来编辑基于HTML的文档,也就是网页文档。了解HTML编辑器,就需要了解基本的网页文件。

2.1 网页的基本原理

网页其实就是一个文本文件,它是满足HTML标记规范的文档。一个网页中,可以包含文本、表格、图片等组成元素,而网页中的HTML标记用来向浏览器说明在屏幕上显示时,这些组成元素应该是什么样的格式和效果。HTML即“超文本标记语言”,它是一种计算机语言,说明如何格式化页面。以文本加粗为例,需要利用HTML标记,具体表示如下:

这是粗体

2.2 HTML编辑器的基本原理

HTML编辑器在WEB系统中应用普遍,当前有很多开发工具用于实现用户富文本的交互,从实现效果上来区分,分为“非所见即所得”和“所见即所得”两种。这两种HTML编辑器实现原理有所区别:

2.2.1 非所见即所得

“非所见即所得”HTML编辑器,是指用户在输入信息时,可以指定显示效果,但不能即刻通过输入看到所处理生成的结果。这种编辑器主要是利用HTML的textarea元素。

在表单提交的同时设置一段JS代码,将object里面的内容复制到隐藏的文本区域中,在后台处理的页面中通过获取隐藏区域的数据来得到html在线编辑器的数据。

3.2 使用iframe调用

使用iframe调用与上面使用object调用方式相似

3.2.1 在web页中嵌入HTML编辑器

在需要嵌入的位置加入以下html代码:

其中src属性指定所要调用的在线编辑器页的路径,id为所调用IFRAME的id,Width和height指定编辑器得高度和宽度。

3.2.2 取得html编辑器中的数据

其操作方式与前面使用object来调用HTML编辑器的方式类似,同样利用表单和隐藏文本域来完成html在线编辑器的数据的获取。

4 在线HTML编辑器KindEditor在JAVA WEB下的应用

尽管开发人员可以自己编写拥有HTML编辑功能的程序,但目前WEB开发中还是广泛采用第三方提供的在线HTML编辑器,如:KindEditor、Fckeditor(ckeditor)等。这些编辑器的功能各有侧重,基本能满足论坛、博客及网站后台富文本信息管理的要求。

KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框替换为可视化的富文本输入框。

用户可以到KindEditor开发官网下载此HTML编辑器。下载后,解压缩即可看到其目录结构。其中的核心目录是plugins、skins和文件kindeditors.js。在文件目录中,asp、asp.net、jsp和php分别是其在不同动态页面技术下的应用文件夹。基于JAVA的WEB开发,可以参考jsp文件夹下的参考程序。其基本使用步骤:①解压zip文件,将所有文件(或简化后仅包含plugins、skins文件夹和文件kindeditors.js)复制到工程的应用目录下,以myeclipse开发的JAVA WEB应用为例,可将其应用文件复制到工程文件夹\WebRoot\ kindeditor目录下。②将kindeditor/jsp/lib目录下的3个jar文件:commons-fileupload-1.2.1.jar、commons-io-1.4.jar和json_simple-1.1.jar复制到Tomcat的lib目录下,并重新启动Tomcat。③给kindeditor/attached目录添加写入权限。④在页面需要嵌入编辑器的位置添加Textarea标签,注意此标签要包含在相应表单中,例如:

用户名

评论:

同时,在该页面添加如下脚本:

KE.show是先执行KE.init设置相关变量,等DOM全部创建以后才开始执行KE.create创建编辑器。在show方法中除id之外还可以设置其它的参数,具体属性可以参考kindeditor使用说明手册。

KindEditor在默认情况下自动寻找textarea所属的form元素,找到form后,在onsubmit事件里添加KE.sync函数,若用form方式提交数据,不需要手动执行KE.sync函数。

获取方式可以参考如下代码:

html = KE.html(“content1”);//取得HTML内容

//同步数据后可以直接取得textarea的value

KE.sync(“content1”);

html = document.getElementById(“content1”).value;

html = $(“# content1”).val(); //jQuery

当然我们也可以直接利用request对象来获取表单里的数据:

request.getParameter("content1")

嵌入kindeditor编辑器后,页面的效果如下图1所示:

5 结语

HTM编辑器使得文本编辑框更能满足用户个性化输入的需要,通过它来完成富文本的编辑能大大拓展交互输入框的功能及显示效果,它已经成为WEB系统不可缺少的组成部分。但HTML编辑器的使用也对开发人员提出了一定要求,我们必须了解和掌握不同HTML编辑器的应用方式及特点,依据开发采用的技术,完成相应的功能。

[参考文献]

[1]姜福成.基于网页平台的移动文本编辑器的设计[J].软件.2013第05期:131-132.

[2]王树威.关于HTML文本编辑器的选用[J].计算机与信息技术.2009第12期:145-147.

[3]于梅英,姜波,张珂.基于Java Web的HTML在线文本编辑器解决方案——以FckEditor在线编辑器为例[J].软件导刊.20011.2:101-102.

[4]高勇.使用IntraWeb实现通用的HTML文本编辑器[J].电脑编程技巧与维护.2010第23期:204-205.