一款纯HTML+CSS+JS富文本编辑器-HandyEditor使用详解


网站编辑的都希望有一款比较适用的编辑器,这样工作起来会感觉比较轻松和自如。我们平常多会使用百度的UEditor,但是UEditor的加载文件相对来说太大,而且UI已经有点旧了。最近在偶然间发现了一款富文本编辑器 — HandyEditor,这是一款鲶鱼CMS官方出品的富文本编辑器,写这篇文章时的版本是1.6.1。花了点时间了解了一下,并在自己的工作中实际的应用了一下,觉得十分容易上手,这篇文章把我使用中的所得记录下来,方便大家应用。

一、先来说一下HandyEditor这款编辑器的特点吧:

1、是使用简单,只需要引入一个js文件即可,按官方的介绍,我们只需要在需要使用的页面中加入下面的代码:

<script src="HandyEditor.min.js"></script>

然后就可以调用了,如下:

var he = HE.getEditor('editor');

就这么简单。这里的editor是指的文本输入框的ID,就是HTML的textarea,我们可以用下面的代码:

<textarea id="editor" name="editor" rows="5" style="display: none;"></textarea>

这里加上“style="display: none;"”是为了不显示默认的文本输入框。当然ID是可以换成其他的,只要调用的时候相同就可以了。

2、轻量,这是又一个很显著的特点,HandyEditor的官方下载压缩包只有不到100KB,这真令人意想不到,这款编辑器也是目前我见到的最轻量的一款富文本编辑器,编辑器的轻量就保证了加载速度快,使用不会卡顿。

3、可定制,这应该是最重要的一个特点了,也是我最喜欢的一个特点,作为前端人员,有这样一款可以方便定制的编辑器是十分舒心的。我们可以根据实际的需要来变更UI来适应页面的整体布局。

二、如何获取编辑器的内容:

我们在编辑器中编辑完内容后,需要获取已经被编辑的内容并且上传到系统后台,获取内容并上传有三种方式,一种是获取HTML内容,另一种是获取纯文本内容,最后一种是将编辑器中的内容同步到textarea中,我们来看一下如何分别获取:

1、获取HTML内容:

he.getHtml();

以上就是获取HTML内容的代码,你可以把它赋值给某个变量并上传到后台。

2、获取纯文本内容:

he.getText();

以上就是获取纯文本内容的代码,这里获取的仅仅是你在编辑器中输入的文字,不包括HTML代码。

3、提取编辑器内容到textarea

he.sync();

以上代码可以把编辑器中的内容同步到textarea,然后就可以上传到服务器后台了。

三、设置编辑器的宽高以及浮动:

我们在前文提到过调用HandyEditor编辑器的方法是:

var he = HE.getEditor('editor');

这个是默认的调用方式,我们可以通过添加参数来实现更多的效果。比方说根据实际需求,我们可能会要求对编辑器的宽和高进行设置,那么我们就可以方便地通过以下方法来实现:

var he = HE.getEditor('editor',{
    width : '300px',
    height : '400px'
});

这里我们把宽度设置为300px,高度设置为400px,你可以根据实际需要进行设置。默认不设置的情况下,编辑器的宽度是自适应的,宽度会随着容器宽度的变化而调整。

进一步,如果我们需要对编辑器设置自动增长和浮动的话,那么可以像下面这样做:

var he = HE.getEditor('editor',{
    width : '300px',
    height : '400px',
    autoHeight : true,
    autoFloat : true
});

上面代码中的autoHeight就是自动增长,我们可以设置为true来实现自动增长,也可以设置为false来取消自动增长。当你设置为true时,你编辑的内容超出编辑器原始高度时,编辑区就会随着内容增加而不断增长。

代码中的autoFloat是设置浮动的,浮动是指工具条的浮动,当设置为true时,工具条会一直显示在页面中方便操作,你也可以设置为false来关闭浮动。

四、上传图片:

一般情况下,我们在编辑一篇文章时都会上传一些图片,以达到图文并茂的效果,下面我们来看一下HandyEditor编辑器如何上传图片。

由于HandyEditor默认情况下是关闭上传图片的,所以我们需要首先开启上传图片功能,如下代码:

var he = HE.getEditor('editor',{
     uploadPhoto : true,
     uploadPhotoHandler : 'uploadPhoto.php',
     uploadPhotoSize : 0,
     uploadPhotoType : 'gif,png,jpg,jpeg',
     uploadPhotoSizeError : '不能上传大于××KB的图片',
     uploadPhotoTypeError : '只能上传gif,png,jpg,jpeg格式的图片'
});

上面代码就是设置上传图片的代码,参数uploadPhoto是用于是否开启图片上传功能的,我们可以设置为true开启,或者设置为false关闭。

参数uploadPhotoHandler是服务器后台接收图片的地址,这里可以根据实际情况填写,这个代码里面我们用PHP来作为后台,你也可以用于Java,Asp.net,python,node.js等不同的后台接收程序。

参数uploadPhotoSize表示允许上传的图片文件的大小,如果设置为0,则表示上传大小没有限制,单位为KB,如果你只允许1M以下的图片上传,那么你在这里填入1000就可以了。

后面几个参数比较明确了,uploadPhotoType是用来设置允许上传的图片格式的,最后两个参数分别用于设置上传错误时的提示信息。

这里重点提一下,上传图片后,从服务器返回的数据,我们只需要从服务器回传可以被实际访问的图片地址就可以了。举个例子,比方说图片最终的访问地址是http://×××/img/×××.jpg,那么只要从服务器回传这个地址就完事了。

五、切换皮肤:

HandyEditor编辑器最吸引我的地方就是可以轻松地换皮肤,我们可以根据实际情况来切换需要的皮肤。切换皮肤有两种方式,一种是内部换肤,另一种是外部换肤。我们来分别介绍一下:

1、内部换肤:

我们从官方获取HandyEditor编辑器并解压之后会发现有一个名为“skin”的文件夹,这个文件夹里面就是存放皮肤文件的,我们可以把制作好的皮肤文件事先存入这个文件夹,然后再通过以下代码就可以实现换肤了:

var he = HE.getEditor('editor',{
     skin : 'myskin'
});

这里我们假设皮肤文件是“myskin.css”,那么我们只需要填入皮肤文件名即可。

2、外部换肤:

外部换肤的意思是皮肤文件可以存放在任何地方,只需要告诉编辑器皮肤在哪里就可以了。我们来看一下代码:

var he = HE.getEditor('editor',{
     externalSkin : 'http://×××/myskin/myskin.css'
});

上面代码就是外部皮肤的使用示例,其中的皮肤地址可以根据实际情况变更。

以上是我在使用富文本编辑器 — HandyEditor时摸索到的内容,分享给大家,希望给大家节省点摸索的时间。

最新回复 (0)
发新帖