# Kz.layedit
**Repository Path**: jester_shujian/Kz.layedit
## Basic Information
- **Project Name**: Kz.layedit
- **Description**: 对layui.layedit的拓展,基于layui v2.4.3.
增加了HTML源码模式,图片插入功能添加alt属性(layupload),视频插入功能,全屏功能,段落、字体颜色设置功能。
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 78
- **Created**: 2018-11-28
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Kz.layedit
### 在线预览
[码云Gitee Pages](http://knifez.gitee.io/kz.layedit/)
### 虽然对移动端做了适配,但是使用体验不咋的,已经放弃治疗.以后估计只会优化界面,避免出现宽,高溢出的情况.但是操作体验上基本无法改进了...不建议移动端做富文本编辑....
#### 更新日志
- ##### V18.11.28
1. [修复] 自定义链接宽度错误设置为3500px问题,修复合并冲突customlink.title设置无效问题
2. [优化] 锚点不再采用class控制,兼容非本编辑器编辑锚点,修改锚点展示样式为§
3. [优化] 插入锚点弹窗兼容移动端
4. [新增] 简单撤销【undo】 重做【redo】功能, 仅对编辑器内文本操作有效,,插入锚点等功能无法撤销重做
- ##### V18.11.27
1. [优化] 段落格式选择样式,背景改为白色,鼠标加手;
2. [新增] 自定义样式【CustomTheme】,暂时只支持video添加时进行主题样式选择,提供三个参数,title(下拉框展示项),content(自定义class).preview(预览图地址)
3. [优化] 修改多图上传图标
4. [新增] 插入表格功能【table】,最大支持10X10,支持右键删除行\新增行,暂不支持合并单元格
5. [新增] 插入自定义链接【customlink】,提供title(弹出层名称),href(添加链接url),onmouseup(onmouseup触发事件)三个参数,添加的链接默认target='_blank',rel='nofollow'
- ##### V18.11.25
感谢来自杨黄林的反馈
1. [合并优化] 图片上传时图片的宽度,高度单位为px,输入时不需输入单位;
2. [合并优化] 修改图片属性时可以初始化获取设置的图片的宽和;
3. [合并新增] 文件、视频上传/删除时增加done回调,参数为服务器返回的数据;新增field 上传时的文件参数字段名
4. [合并优化] 图片、视频地址为空时,确定给出提示,不能为空;
5. [合并修复] 批量上传时,上传失败会删除相应图片;
6. [合并优化] 超链接弹窗高度自适应;
7. [合并优化] 弹窗使用layer自带按钮
8. [新增] 上传图片视频时可在后台判断服务器是否存在该文件,如存在则返回{code:2,msg:"重复提示",data:{src:"重复文件路径"}}; 会弹窗提示是否调用重复文件,如不需要该功能返回状态码请勿使用2,正常 0,错误 1, 重复 2 、、、
9. [新增] 编辑器外置样式和js引用【quote】
- ##### V18.11.24
1. [新增] 文字背景色设置[fontBackColor]
2. [优化] uploadImage/uploadVideo可只设置url,其余均设置可读取默认值。
3. [已知问题] IE模式下插入表情图片视频等功能均不可用,仅支持少许设置。
- ##### V18.11.23
1. [新增] 多图上传功能[images],配置参数同uploadImage,删除回调同 calldel
- ##### V18.11.16
1. [修复] 空编辑器上传视频并删除后编辑器无法操作问题
2. [修复] 插入锚点功能
3. [移除] 字体/字体大小设置
4. [优化] 右键菜单/段落格式展示效果
5. [优化] 插入视频同时插入p标签,并在左右各加一个空格符,以处理video标签无法选中问题。
6. [新增] 图片上传和视频上传文件限制参数 file/filemine/exts --该参数引用自layupload,详细见layuplaod基础参数
7. [新增] 右键删除视频图片的回调方法设置 calldel:{url:''},该设置会调用post方法传递图片(imgpath)/视频地址(filepath)
8. [新增] 开发者模式 devmode,默认为false,false时隐藏添加链接的 打开方式和rel属性
9. [新增] 图片右键添加删除功能
10. [新增] 超链接添加页面新增链接 文本字段,打开方式默认为新页面
11. [新增] 图片视频上传时可在后台检测服务器是否存在相同文件,相同可返回服务器文件地址进行调用,前台有提示,返回码为2
12. [已知问题] 粘贴或赋默认值时会过滤script和style标签,内容中存在错误时编辑器不可用,如存在该问题请检查内容是否正确
- ##### v18.11.12
1. 新增图片右键修改功能,可重新上传图片
2. 修复上传视频什么也不选时也能成功添加bug,现在会提示上传视频(感谢hreohill的反馈)
3. 新增 添加水平线/hr(addhr)功能
4. 插入代码新增自定义参数 codeConfig{hide:true|false,default:"javascript/c#/java..."} 设置hide为true时不显示代码选择框,可依据default设置默认语言格式。不设置codeConfig则为原版
~~5. [已知bug] 字体大小设置目前不可用~~
~~6. [待完善]新增 插入锚点(anchors) 功能,前台展示默认为 $锚点$ ,保存和读取存在问题,暂不推荐使用~~
- ##### v18.10.23
修复取消全屏后样式错误问题(部分情况下依旧会出现高度变矮情况)
- ##### v18.10.9
1. 新增图片右键修改宽高功能
2. 优化右键面板样式,最大化最小化功能优化
- ##### v18.10.8
1. 添加右键触发事件 --居中,居左,居右,删除
2. 回车、居中居左等自动追加p标签
- ##### v18.9.29
1. 添加HTML源码模式
2. 图片插入添加alt属性
3. 新增 视频插入、全屏、字体颜色设置功能
#### 项目介绍
对layui.layedit的拓展,基于layui v2.4.3.
- 增加了HTML源码模式,
- 图片插入功能添加alt属性(layupload),
- 视频插入功能,
- 全屏功能,
- 段落格式,
- 字体颜色设置功能。
- 所有拓展功能菜单按钮图标均引用自layui自带图标
#### 软件架构
软件架构说明
1. HTML源码模式 引用第三方插件ace,优化源码展示样式。
2. 引用ace编辑器仅保留了html源码样式和tomorrow主题,如有需要可自行更换
#### 安装教程
1. index.html下为示例文件,可供查看演示功能
2. 将dist下文件layedit.js替换掉layui/lay/modules/layedit.js
3. 正常调用layedit即可
#### 使用说明
配置信息
```
layui.use(['layedit','layer','jquery'],function() {
var $=layui.jquery;
var layedit = layui.layedit;
layedit.set({
//暴露layupload参数设置接口 --详细查看layupload参数说明
uploadImage: {
url: '/Attachment/LayUploadFile',
field: 'file',//上传时的文件参数字段名
accept: 'image',
acceptMime: 'image/*',
exts: 'jpg|png|gif|bmp|jpeg',
size: 1024 * 10,
done: function (data) {//文件上传接口返回code为0时的回调
}
}
, uploadVideo: {
url: '/Attachment/LayUploadFile',
field: 'file',//上传时的文件参数字段名
accept: 'video',
acceptMime: 'video/*',
exts: 'mp4|flv|avi|rm|rmvb',
size: 1024 * 2 * 10,
done: function (data) {//文件上传接口返回code为0时的回调
}
}
//右键删除图片/视频时的回调参数,post到后台删除服务器文件等操作,
//传递参数:
//图片: imgpath --图片路径
//视频: filepath --视频路径 imgpath --封面路径
, calldel: {
url: '/Attachment/DeleteFile',
done: function (data) {//data删除文件接口返回返回的数据
}
}
//开发者模式 --默认为false
, devmode: true
//插入代码设置
, codeConfig: {
hide: false, //是否显示编码语言选择框
default: 'javascript' //hide为true时的默认语言格式
}
//新增iframe外置样式和js
, quote:{
style: ['/Content/Layui-KnifeZ/css/layui.css','/others'],
js: ['/Content/Layui-KnifeZ/lay/modules/jquery.js']
}
, //fontFomatt:["p","span"] //自定义段落格式 ,如不填,默认为 ["p", "h1", "h2", "h3", "h4", "h5", "h6", "div"]~~
, tool: [
'html','undo','redo','code'
, 'strong', 'italic', 'underline', 'del',
,'addhr' //添加水平线
,'|', 'fontFomatt','colorpicker' //段落格式,字体颜色
, 'face', '|', 'left', 'center', 'right', '|', 'link', 'unlink'
, 'image_alt', 'altEdit', 'video'
,'anchors' //锚点
, '|'
, 'table'//插入表格
,'customlink'//插入自定义链接
,'fullScreen'
]
});
var ieditor = layedit.build('layeditDemo');
layedit.setContent(ieditor,"hello layedit",false);
})
```