# iceEditor
**Repository Path**: arifcc/iceEditor
## Basic Information
- **Project Name**: iceEditor
- **Description**: iceEditor是一款简约风格的WEB富文本编辑器,体型十分娇小,无任何依赖,整个编辑器只有一个文件,功能却很不平凡!简约的唯美设计,简洁、极速、使用它的时候不需要引用jQuery、font、css……等文件,因为整个编辑器只是一个Js,支持上传图片、附件!支持添加音乐、视频!
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://www.iceui.net/iceEditor.html
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 87
- **Created**: 2020-05-07
- **Last Updated**: 2024-06-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# iceEditor富文本编辑器
#### 官方
+ iceEditor 官方网站 [https://www.iceui.net/iceEditor.html](https://www.iceui.net/iceEditor.html)
+ iceEditor 示例文档 [https://www.iceui.net/iceEditor/doc.html](https://www.iceui.net/iceEditor/doc.html)
#### 介绍
iceEditor是一款简约风格的富文本编辑器,体型十分娇小,无任何依赖,整个编辑器只有一个文件,功能却很不平凡!简约的唯美设计,简洁、极速、使用它的时候不需要引用jQuery、font、css……等文件,因为整个编辑器只是一个Js,支持上传图片、附件!支持添加音乐、视频!
iceEditor官方群:324415936
#### 优点
+ 纯原生开发,无任何依赖,冰清玉洁
+ 响应式布局,适应任何分辨率的设备
+ 整个编辑器只有一个文件,高效便捷
+ 简约的唯美设计,简洁、极速
#### 更新
# iceEditor v1.1.4
+ **2020-04-22**
+ [新增] 插件机制,可更好的定制开发菜单栏(开发文档努力写作中,后续贴出,以下贴出简单示例)
+ [新增] 配置项css,可自由设计编辑器的风格样式
+ [修复] 粘贴文本造成换行BUG
+ [修复] 上个版本升级造成的个别样式错误
+ [重写] 菜单栏内核,转为插件设计
+ [优化] 一些逻辑代码,提升加载速度
+ [优化] 样式代码,精简一部分多余样式
+ **2020-04-21**
+ [修复] 代码查看模式粘贴代码造成空白的BUG
+ **2020-04-20**
+ [新增] 添加视频解析功能,可直接添加b站和优酷的播放地址链接(其它视频平台将会陆续添加)
+ [优化] 编辑器样式,全部添加前缀,防止污染
+ [修复] 附件和图片上传失败所造成的BUG
+ [修复] upload.php文件返回json格式
+ [查看其它更新](https://www.iceui.net/iceEditor/update.html)
#### 提示
[iceui](https://gitee.com/iceui/iceui) 前端框架已经已集成该编辑器。
#### 注意
iceEditor.js的引用禁止放在head标签内,请尽量放在body中或body后面!
#### 使用
```html
欢迎使用iceEditor富文本编辑器
```
```javascript
//第一步:创建实例化对象
var e = new ice.editor('content');
//第二步:配置图片或附件上传提交表单的路径
//如果你的项目使用的php开发,可直接使用upload.php文件
//其它的编程语言需要你单独处理,后期我会放出.net java等语言代码
//具体与你平常处理multipart/form-data类型的表单一样
//唯一需要注意的就是:处理表单成功后要返回json格式字符串,不能包含其它多余的信息:
//url:文件的地址
//name:文件的名称(包含后缀)
//error:上传成功为0,其它为错误信息,将以弹窗形式提醒用户
//例如批量上传了两张图片:
//[
// {url:'/upload/img/153444.jpg', name:'153444.jpg', error:0},
// {url:'/upload/img/153445.jpg', name:'153445.jpg', error:'禁止该文件类型上传'}
//]
e.uploadUrl="/iceEditor/src/upload.php";
//第三步:配置菜单(默认加载全部,无需配置)
e.menu = [
'backColor', //字体背景颜色
'fontSize', //字体大小
'foreColor', //字体颜色
'bold', //粗体
'italic', //斜体
'underline', //下划线
'strikeThrough', //删除线
'justifyLeft', //左对齐
'justifyCenter', //居中对齐
'justifyRight', //右对齐
'indent', //增加缩进
'outdent', //减少缩进
'insertOrderedList', //有序列表
'insertUnorderedList', //无序列表
'superscript', //上标
'subscript', //下标
'createLink', //创建连接
'unlink', //取消连接
'hr', //水平线
'table', //表格
'files', //附件
'music', //音乐
'video', //视频
'insertImage', //图片
'removeFormat', //格式化样式
'code', //源码
'line' //菜单分割线
];
//第四步:创建
e.create();
```
#### 设置编辑器尺寸
```javascript
var e = new ice.editor('content');
e.width='700px'; //宽度
e.height='300px'; //高度
e.create();
```
#### 禁用编辑器
```javascript
var e = new ice.editor('content');
e.disabled=true;
e.create();
```
#### 获取内容
```javascript
var e = new ice.editor('content');
console.log(e.getHTML()); //获取HTML格式内容
console.log(e.getText()); //获取Text格式内容
```
#### 设置内容
```javascript
var e = new ice.editor('content');
e.setValue('hello world!');
```
#### 追加内容
```javascript
var e = new ice.editor('content');
e.addValue('hello world!');
```
#### 插件开发
```javascript
var e = new ice.editor('content');
e.addValue('hello world!');
//┌────────────────────────────────────────────────────────────────────────
//│ e.plugin(options)传参说明
//│────────────────────────────────────────────────────────────────────────
//│ options {json}
//│ ├ name {string} [必填]菜单唯一的name,可配置menu项显示与顺序
//│ ├ menu {string} [必填]展示在菜单栏上的按钮,可为图标或者文字
//│ ├ data {string} execCommand的命令
//│ ├ id {string} 菜单按钮上的id
//│ ├ css {string} 菜单按钮上的class
//│ ├ style {string} 该插件的style,以css文件中的样式形式书写
//│ ├ dropdown {string} 下拉菜单里的html,如果定义了popup,则该参数失效
//│ ├ popup {json} 弹窗json
//│ │ ├ width {int} 弹窗的宽度
//│ │ ├ height {int} 弹窗的高度
//│ │ ├ title {string} 弹窗上的标题
//│ │ └ content {string} 弹窗的内容,可为html
//│ ├ click {function} 按钮点击事件
//│ └ success {function} 插件安装成功后会自动执行该方法
//└────────────────────────────────────────────────────────────────────────
//function方式
e.plugin({
menu:'function方式',
name:'click',
click:function(e,z){
z.setText('hello world');
}
});
//execCommand命令
e.plugin({
menu:'删除命令',
name:'del',
data:'delete'
});
//下拉菜单类型
e.plugin({
menu:'下拉菜单',
name:'dropdown',
dropdown:'复制选中的文字
',
});
//弹出层类型
e.plugin({
menu:'弹窗演示',
name:'popup',
style:'.demo-p{margin-bottom:10px}.demo-button{padding:0 10px}',
popup:{
width:230,
height:120,
title:'我是一个demo',
content:'在光标处插入hello world!
',
},
success:function(e,z){
//获取content中的按钮
var btn = e.getElementsByTagName('button')[0];
//设置点击事件
btn.onclick=function(){
z.setText('hello world');
//关闭本弹窗
e.close()
}
}
});
e.create();
```