KindEditor是一套很方便的html编译器插件。在这里做一个简单的使用介绍。
首先在官网上下载最新的KindEditor文件(里面有jsp,asp等不同版本文件夹,可以删掉你不需要的版本),
把整个文件夹放到你的web服务器里(放哪都行,但放的位置需要有访问权限,最好建立一个权限为777的public文件夹,把KindEditor文件夹放进去)。
之后在需要用到KindEditor的页面引入以下两个js文件(具体js目录根据你的KindEditor文件夹位置而定)
1
2
|
< script charset="utf-8" src="kindeditor文件夹所在目录/kindeditor文件夹名/kindeditor.js"></ script > < script charset="utf-8" src="kindeditor文件夹所在目录/kindeditor文件夹名/lang/zh-CN.js"></ script > |
之后再在这个页面写一个js脚本,注意:这个脚本的作用就是控制该页面的KindEditor编辑器,js脚本如下:
<script type="text/javascript"> //KindEditor脚本 var editor; KindEditor.ready(function(K) { editor = K.create('#你的textarea的id名', { }); }); </script>
这个脚本里的 editor = K.create('#你的textarea的id名', {}); 这个,对应的就是一个KindEditor编辑器。
例子:
假设我们现在有一个textarea标签,id设为"kindEditor_demo"
1
|
< textarea id="kindEditor_demo"></ textarea > |
我们再引入刚刚提到的两个js文件后,再写如下js代码到该页面,
1
2
3
4
5
6
7
8
|
<script type= "text/javascript" > //KindEditor脚本 var editor; KindEditor.ready( function (K) { editor = K.create( '#kindEditor_demo' , { }); }); </script> |
那么这个textarea标签就会变成KindEditor编译器
用法一,自己选择需要的功能:
按照上面的部署方式,最终呈现的是一个完整版KindEditor编译器,可其中很多功能不一定需要,那么可以在刚刚提到的js脚本中对KindEditor编译器进行控制。
假设我们只需要:插入表情和文字颜色的功能。则可以在js脚本中设定“items ”选项。如:
1
2
3
4
5
|
KindEditor.ready( function (K) { editor = K.create( '#你的textareaid名' , { items : [ 'forecolor' , 'emoticons' ] }); }); |
其中的'forecolor','emoticons'代表“文字颜色功能”和“插入表情功能”。(具体更多的功能名可以查看官方网址的开发文档)。
(同理,对于该编译器的很多设置都是通过这种方式来完成的)
用法二,KindEditor的一个奇怪特性:
在页面第一次加载时,不能隐藏KindEditor所在的标签,否则即使后面利用js将css的display设置为block,KindEditor也不会显示。
解决的办法是先让网页将所有的KindEditor编辑器加载完后,再用下面这种方法将需要隐藏的部分隐藏
1
2
3
4
5
|
window.onload = hidden_box; function hidden_box(){ $( '#inner_wrap' ).css( 'display' , 'none' ); } |
这段js脚本是等页面加载完后才会执行,所以此时KindEditor已经加载完了,可以被隐藏了
用法三,获取KindEditor编译器的内容。
我们看到的KindEditor编译器实际上不是我们之前自己写在页面中的textarea标签,当我们在KindEditor编译器里输入完内容并提交表单后,KindEditor会自动将我们输入的内容“同步”到之前我们自己建的textarea标签中,之后再发送表单。
所以我们直接获取textarea标签的内容实际是没用的,正确的做法是让KindEditor将数据“同步”到textarea标签中后,再获取textarea标签中的内容。
我们可以利用我们之前建的KindEditor对象对KindEditor编译器进行操作,令其进行同步数据。
1
2
3
4
5
|
KindEditor.ready( function (K) { editor = K.create( '#text_new_continue' , { }); }); </script> |
上述代码之前提到过,其中的editor就是“id为text_new_continue的textarea标签”所对应的KindEditor对象。
当我们想令KindEditor编译器将数据同步到“id为text_new_continue的textarea标签”时,就可以操作editor对象。
如:
1
2
|
editor.sync(); //将KindEditor的数据同步到textarea标签。 var value_content = $( "#text_new_continue" ).val(); |
其中value_content就是KindEditor编译器里的内容