Html富文本编辑器

摘要:
本文推荐两个简单的富文本编辑器[KindEditor,NicEdit]来实现WYSIWYG编辑效果。本文仅供学习和分享。请改正任何缺点。概述这两个编辑器是用JavaScript编写的,不需要引用dll。它们可以与主流后端编程语言(Java、.NET、PHP、ASP等)无缝连接。它们很小,可以将现有的TextArea转换为富文本编辑器。以下是:什么是KindEditor?幼儿园

本文推荐两款简单的富文本编辑器【KindEditor,NicEdit】用于获得所见即所得的编辑效果,本文仅供学习分享使用,如有不足之处,还请指正。

概述

这两款编辑器都是采用JavaScript编写,不需要引用dll,可以与主流后端编程语言【Java , .NET,PHP,ASP等】无缝对接,体积小,可以将现有的TextArea变成富文本编辑器。下面来分别介绍下:

什么是KindEditor ?

KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框。 KindEditor 使用 JavaScript 编写,可以无缝地与 Java、.NET、PHP、ASP 等程序集成,比较适合在 CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用。

KindEditor 特点:

  • 快速:体积小,加载速度快
  • 开源:开放源代码,高水平,高品质
  • 底层:内置自定义 DOM 类库,精确操作 DOM
  • 扩展:基于插件的设计,所有功能都是插件,可根据需求增减功能
  • 风格:修改编辑器风格非常容易,只需修改一个 CSS 文件
  • 兼容:支持大部分主流浏览器,比如 IE、Firefox、Safari、Chrome、Opera

示例

KindEditor,如下图所示,

Html富文本编辑器第1张

如何获取获取编辑后的内容【KindEditor的可视化操作在新创建的iframe上执行,代码模式下的textarea框也是新创建的,所以最后提交前需要执行 sync() 将HTML数据设置到原来的textarea。】,可以采用如下代码:

Html富文本编辑器第2张Html富文本编辑器第3张
 1 // 取得HTML内容
 2 html = editor.html();
 3 
 4 // 同步数据后可以直接取得textarea的value
 5 editor.sync();
 6 html = document.getElementById('editor_id').value; // 原生API
 7 html = K('#editor_id').val(); // KindEditor Node API
 8 html = $('#editor_id').val(); // jQuery
 9 
10 // 设置HTML内容
11 editor.html('HTML内容');
View Code

关于本例KindEditor的Html代码如下:

Html富文本编辑器第2张Html富文本编辑器第5张
 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>KindEditor</title>
 6         <link rel="stylesheet" href="kindeditor/themes/qq/qq.css" />
 7         <link rel="stylesheet" href="kindeditor/plugins/code/prettify.css"  />
 8         <script charset="UTF-8" src="kindeditor/kindeditor-all-min.js"></script>
 9         <script charset="UTF-8" src="kindeditor/lang/zh-CN.js"></script>
10         <script charset="UTF-8" src="kindeditor/plugins/code/prettify.js"></script>
11         <script type="text/javascript">
12             var editor1;
13             KindEditor.ready(function(K){
14                   editor1=K.create('#t1',{
15                     cssPath:'kindeditor/plugins/code/prettify.css',
16 //                    uploadJson:'../asp.net/upload_json.ashx',
17 //                    fileManagerJson:'../asp.net/file_manager_json.ashx',
18                     allowFileManager:true,
19                     afterCreate:function(){
20                         var self=this;
21 //                        K.ctrl(doument,13,function(){
22 //                            self.sync();
23 //                            K('form[name=example]')[0].submit();
24 //                        });
25 //                        K.ctrl(self.edit.doc,13,function(){
26 //                            self.sync();
27 //                            K('form[name=example]')[0].submit();
28 //                        });
29                     }
30                 });
31                 prettyPrint();
32             });
33             function preSave(){
34                  var html = editor1.html();
35                  editor1.sync();
36                  var s =document.getElementById("t1").value;
37                  document.getElementById("t2").value = s;
38                  alert(s); 
39                  return false;
40             }
41         </script>
42     </head>
43     <body>
44          <form id="example" name="example">
45          <label>详细内容:</label>
46         <textarea id="t1" name="t1" cols="100" rows="8" style="700px;height:200px;visibility:hidden;">
47             
48         </textarea>
49         <input type="hidden" id="t2" value="" />
50         <input type="submit" id="submit" value="提交" onclick="return preSave();" />
51     </form>
52     </body>
53 </html>
View Code

什么是NicEdit?

NicEdit is a Lightweight, Cross Platform, Inline Content Editor to allow easy editing of web site content on the fly in the browser.NicEdit Javascript integrates into any site in seconds to make any element/div editable or convert standard textareas to rich text editing.

示例:

Html富文本编辑器第6张

关于如何获取编辑器后的内容【这里用textarea的id和值是获取不了的,因为nicedit会隐藏原有的textarea,并生成自带的输入框,这是要获取框内文本就需要通过其生成的类名去获取】:可以采用document.getElementsByClassName("nicEdit-main")[0].innerHTML;方式获取

关于本例中NicEdit的Html代码如下:

Html富文本编辑器第2张Html富文本编辑器第8张
 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>NicEdit</title>
 6         <script type="text/javascript" src="NicEdit/nicEdit.js"></script>
 7         <script type="text/javascript">
 8             var editor1;
 9             bkLib.onDomLoaded(function(){
10               editor1 =    new nicEditor({
11                     fullPanel:true,
12                     iconsPath : 'NicEdit/nicEditorIcons.gif'
13                     }).panelInstance("t1");
14             });
15             function preSave(){
16              var s=    document.getElementsByClassName("nicEdit-main")[0].innerHTML;
17              document.getElementById("t2").value=s;
18              alert(s);
19              return false;
20             }
21         </script>
22     </head>
23     <body>
24         <form id="example" name="example">
25          <label>详细内容:</label>
26         <textarea id="t1" name="t1" style="700px;height:300px;"></textarea>
27         <input type="hidden" id="t2" name="t2" />
28         <input type="submit" value="提交" id="submit" name="submit" onclick="return preSave();" />
29         </form>
30     </body>
31 </html>
View Code

备注:

本文旨在抛砖引玉,最好的学习手册(包括下载地址)就是官网。

KindEditor:http://kindeditor.net/demo.php

NicEdit:http://nicedit.com/index.php

免责声明:文章转载自《Html富文本编辑器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇第三方库-时间函数dateutilPHP 多图上传,图片批量上传插件,webuploader.js,百度文件上传插件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

如何让bat文件已管理员身份运行

某些批处理需要高权限才能执行行,以实现所需的Zhi效果。您可以以管理员身份运行,方法是将以下代码放在批处理的顶部。...

python爬取图片遇见src乱码: data:image/png;base64

Python抓取图像并遇到src乱码:data:image/png;Base64会抓取您喜欢的图像,但图像的src在抓取的代码中出现了乱码:data:image/png;base64.)“”头1,编码=字符串。splitdata=b64decodedwithopenasf:f.写入。close()注意:我还没有成功。。。。。。...

模拟浏览器请求(WebRequest)

//参数stringblockType=context。要求从其他公司传递的参数[“BlockType”]///stringblockNo=context.Request.Params[“BlockNo”];//blockList.其中(c=&gt;blockType=SZ&amp;...

MySQL高可用集群方案

资源不足的小团队或小项目直接建议阿里云和腾讯云II。一些常见解决方案介绍1。MySQL主从架构2。MHA架构参考:生产环境MySQL数据库集群MHA在线实现解决方案MHA目前是MySQL高可用性中比较成熟的解决方案。...

C# 获取枚举 Enum 变量值的 Description 属性

如何在C#中读取枚举值的描述属性?有以下枚举:123456 public enum enum Langage{[System.ComponentModel.Description]Chinese,English}我们希望得到的是中文中的“Chinese”描述。123456789 publicstringGetEnumDescription{stringstr...

Jboss

同时,为了扩大JBoss的企业市场,JBoss已经签署了许多渠道合作伙伴。2004年6月,JBoss宣布JBoss应用服务器已通过Sun公司的J2EE认证。这是JBoss应用服务器历史上最重要的里程碑。JBossAOP 1.0于2004年10月发布。这也证实了JBoss是一家创新型公司。JBoss应用服务器5.0于2008年12月6日正式发布。新版本的应用服...