本文推荐两款简单的富文本编辑器【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,如下图所示,

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

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代码如下:

1 <!DOCTYPE html>
2 <html>
3     <head>
4         <metacharset="UTF-8">
5         <title>KindEditor</title>
6         <linkrel="stylesheet"href="kindeditor/themes/qq/qq.css" />
7         <linkrel="stylesheet"href="kindeditor/plugins/code/prettify.css"  />
8         <scriptcharset="UTF-8"src="kindeditor/kindeditor-all-min.js"></script>
9         <scriptcharset="UTF-8"src="kindeditor/lang/zh-CN.js"></script>
10         <scriptcharset="UTF-8"src="kindeditor/plugins/code/prettify.js"></script>
11         <scripttype="text/javascript">
12             vareditor1;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                         varself=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             functionpreSave(){34                  varhtml=editor1.html();35 editor1.sync();36                  vars=document.getElementById("t1").value;37 document.getElementById("t2").value=s;38 alert(s);39                  return false;40 }41         </script>
42     </head>
43     <body>
44          <formid="example"name="example">
45          <label>详细内容:</label>
46         <textareaid="t1"name="t1"cols="100"rows="8"style="width:700px;height:200px;visibility:hidden;">
47
48         </textarea>
49         <inputtype="hidden"id="t2"value="" />
50         <inputtype="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.

示例:

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

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

1 <!DOCTYPE html>
2 <html>
3     <head>
4         <metacharset="UTF-8">
5         <title>NicEdit</title>
6         <scripttype="text/javascript"src="NicEdit/nicEdit.js"></script>
7         <scripttype="text/javascript">
8             vareditor1;9 bkLib.onDomLoaded(function(){10 editor1=    newnicEditor({11 fullPanel:true,12 iconsPath :'NicEdit/nicEditorIcons.gif'
13 }).panelInstance("t1");14 });15             functionpreSave(){16              vars=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         <formid="example"name="example">
25          <label>详细内容:</label>
26         <textareaid="t1"name="t1"style="width:700px;height:300px;"></textarea>
27         <inputtype="hidden"id="t2"name="t2" />
28         <inputtype="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

转载于:https://www.cnblogs.com/hsiang/p/8456961.html

Html富文本编辑器相关推荐

  1. .net下的富文本编辑器FCKeditor的配置方法(图)原创

    .net下的富文本编辑器FCKeditor的配置方法(图)原创 FCKeditor是一款开源的富文本编辑器,几乎支持所有流行的Web开发语言,版本稳定,用户多,可配置性好. 以前做Java和php的时 ...

  2. jeecg富文本编辑器增加字体(仿宋)

    jeecg富文本编辑器增加字体(仿宋) 温馨提示:jeecg 提供了 uedit 富文本的实现,如下针对的是 uedit 增加仿宋字体示例. 主要修改三个文件:plug-in\ueditor\uedi ...

  3. React +antd +wangEditor 富文本编辑器

    1. 安装 npm i wangeditor --save 2. 引入: import E from 'wangeditor'; 3. 渲染: <div id="div1"& ...

  4. html 组件化 编辑器,vue.js组件化使用百度富文本编辑器(一)

    注意: 本文采用的编辑器为:idea 1.下载百度富文本编辑器,地址:https://ueditor.baidu.com/website/download.html#ueditor 2.加入到stat ...

  5. 阿里云oss云存储图片上传在wangEditor富文本编辑器上的集成

    调用方式 html: <textarea name="newsinfo_content" id="editor" style="height:5 ...

  6. 11. Django 引入富文本编辑器KindEditor

    打开微信扫一扫,关注微信公众号[数据与算法联盟] 转载请注明出处:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Gith ...

  7. kind富文本编辑器_富文本编辑器原理探索

    经常在做企业网站的管理系统的时候需要用到富文本编辑器,之前基本上都是直接去 npm 或者 github 上面搜找一些排名考前或者 readme 写的好的库,直接拿来用.万变不离其宗,是时候探索下本质了 ...

  8. html自定义实现文本编辑器,自定义开发富文本编辑器(Javascript实现点击插入内容到textarea光标处)...

    富文本编辑器相信很多程序员都用过,但是如何自己制作一个仿富文本的编辑器来解决一些简单的或自定义的需求呢?下面给大家共享一个使用JavaScript实现在textarea光标处插入指定文本内容以及字符串 ...

  9. Html引入百度富文本编辑器ueditor

    在日常工作用,肯定有用到富文本编辑器的时候,富文本编辑器功能强大使用方便,我用的是百度富文本编辑器,首先需要下载好百度编辑器的demo, 然后创建ueditor.html文件,引入百度编辑器,然后在h ...

  10. vue 富文本存储_Vue富文本编辑器

    效果图: image.png 此处介绍一个好用的 Tinymce 富文本编辑器,也是 vue-element-admin 后台管理项目中所用到的.(都有现成的了,不妨拿来用) image.png im ...

最新文章

  1. 【HDU1203 HDU2955 01背包中的简单概率问题处理】
  2. 吴恩达机器学习Ex2
  3. python加载数据集,读取h5数据集python的一部分
  4. 分库与分表设计-垂直切分
  5. ictclas4j java_java使用ictclas4j分词时出现NullPointerException错误 寻高手帮忙
  6. 7位应届生讲述就业难:面试20多家公司,甚至当了保安
  7. 真传x深度学习第二课:nvidia显卡驱动和cuda安装(小米13.3,显卡mx150)
  8. aspx页面中文汉字显示为乱码
  9. 多年前的csdn账号找回啦
  10. LINUX命令 VS DOS命令
  11. IRC下载TLF0day资源
  12. shopnc数据库操作
  13. Linux下parity联盟链的实现
  14. 天池竞赛-地表建筑物识别 语义分割
  15. 【看表情包学Linux】软件包管理器 yum | Vim 编辑器介绍 | Vim 文本批量化操作 | 配置 Vim
  16. qt去掉莫名其妙的semantic issue
  17. [Android自定义控件]自定义属性attrs.xml中format
  18. 英语四级常考100个短语
  19. ImageView设置纯色图片颜色
  20. 【时间与空间】惯性系与地固系之间的转换

热门文章

  1. linux c多进程多线程,linux下的C\C++多进程多线程编程实例详解
  2. 远程桌面服务器office版本,在启用远程桌面服务的计算机上部署 Office 2010
  3. java运算符试题,编程语⾔⾯试题之新版javase基础语法篇之运算符
  4. 创建数组_如何创建数组
  5. daoi php_使用php生成RSA公钥私钥及进行加密解密和签名验证
  6. 绿盟科技鸿蒙系统,华为 X 绿盟科技,打造“云原生安全新生态”
  7. php有哪些高级扩展,php扩展有哪些
  8. Linux编译C没有文件名,crt1.o linux x64上没有这样的文件c编译错误
  9. 【JAVA基础篇】IO流
  10. php 单一职责原则,Laravel深入学习8 - 单一责任原则