# Kz.layedit **Repository Path**: myzhiqiang/Kz.layedit ## Basic Information - **Project Name**: Kz.layedit - **Description**: 对layui.layedit的拓展,基于layui v2.4.3.增加了HTML源码模式、插入table、批量上传图片、图片插入、超链接插入功能优化、视频插入功能、全屏功能、段落、字体颜色、背景色设置、锚点设置等功能。 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: http://knifez.gitee.io/kz.layedit/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 78 - **Created**: 2019-04-21 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Kz.layedit ### 已更新项目配置使用说明 [Kz.layedit使用说明](https://knifez.gitee.io/articles/kz.layedit/) #### 在线预览 [码云Gitee Pages](http://knifez.gitee.io/kz.layedit/index.html) ### 存在缺陷--由于本人是职业后端,前端水平有限,故存在一些bug短期内无法修复 - ##### word粘贴的图片只能获取本机temp路径,且无法判别是否是图片,无法以file形式上传后台,故后续不继续考虑和实现word图片粘贴问题 ,参照ueditor后发现也没有实现该功能,仅仅是过滤了标签多余样式 - ##### 修改字体/字体大小 会清除选中文本段落格式,短期内可能无法修复 - ##### 插入视频 默认以div包裹,前后插入一个``` ```来实现选中居中和删除操作。 - ##### 关于getRangeAt(0)报错,由于我个人使用时无论弹窗还是直接使用或在form表单中均未能复现,请遇到该问题的人附上详细错误和调用环境、操作过程等可能导致该问题或有助于解决该问题的信息 - ##### 撤销重做仅仅是简单实现,无法满足正常需求,不推荐使用,后续优化概率较小,除非我找到能很好解决这个问题的办法 - ##### 虽然对移动端做了适配,但是使用体验不咋的,已经放弃治疗.以后估计只会优化界面,避免出现宽,高溢出的情况。不建议移动端做富文本编辑. ##### 下一步的精力主要用于解决插入图片没有闭合标签问题=.= 以及寻求解决方案解决修改字体和字体大小的bug。 #### 其他问题可先查看issues有没有类似问题,如果没有可直接提issues,也方便其他人查看,不再翻评论 :smile: #### 更新日志 ##### v19.04.12 1. [修复#IVA7B] 插入表格后无法提交问题 感谢ftlh2005的反馈 ##### v19.03.22 1. [修复] 多图上传设置宽高报错问题 ##### V19.03.20 1. [修复] 当p标签内存在多张图片时back键调用callDel删除时始终获取的是第一张图片src的bug 2. [新增] del键删除图片调用callDel回调方法 ##### V19.03.18 1. [修复] 粘贴图片时错误的粘贴到编辑器顶部而不是鼠标光标处 ##### V19.03.02 1. [修复] 全屏下查看源代码内容过长时最后几行看不到问题 2. [优化] 全屏模式下背景色改为白色 ##### V19.01.26 1. [修复] 监听事件container.tagName为undefined错误 感谢yianyao的反馈 ##### V19.01.25 1. [优化] ctrl+b 加粗使用strong标签替换原版b标签 2. [修复] 段落格式 和 字体大小 可能出现点击后即自动关闭的问题 ##### V19.01.24 1. [优化] 支持从word粘贴内容保留格式,去除多余标签 ##### V19.01.23 1. [移除] V19.01.22-beta-[3] 报 无法获取图片路径 的提示,,不过原先会提示的图片依旧无法从服务器删除 2. [修复] 编辑器内容为空时回车换行添加的标签为div,昨天更新时不小心覆盖掉了、已修复为追加p标签 3. [修复] 图片上传宽高兼容%后设置无效问题 --感谢不愿意透露姓名的网友反馈 :smile: ##### V19.01.22-beta 1. [优化] 图片上传宽高兼容%设置 2. [修复] 编辑器内容为空时回车换行添加的标签为div 3. [测试] back退格键删除图片时调用callDel配置参数回调服务器删除附件,需配置参数 backDelImg:true (待删除),目前不支持没有p标签或其他元素包裹的img图片删除,会报无法获取图片路径的弹出层,这是正常提示、、 ##### V19.01.19 (感谢biancangming的反馈) 1. [修复] 粘贴图片不调用uploadImage.done方法 2. [新增] 插入代码配置codeConfig新增参数 class,可根据需要自定义样式,不填默认为layui-code ##### V19.01.18 1. [修复] IR5LC 火狐浏览器菜单宽度异常问题 2. [新增] preview预览样式设置参数 previewAttr,支出对预览弹出层的area,offset参数设置,修改默认值为area:['50%','100%'],offset:'r'。 3. [修复] 空编辑器插入视频出现getRangeAt错误和同步textarea异常问题 ##### V19.01.16-beta 1. [优化] 插入图片时如果不填写描述属性和宽高时,不再添加style="" alt="" 空属性 2. [修复] 附件上传没有添加data和headers参数,由于我个人不使用这两个参数且测试时都时拿上传图片测试、、、所以未能测试出该问题,对因此造成困扰的人感到抱歉=.= ##### V19.01.10-beta 1. [修复] 取消回车/插入元素自动加p标签包裹,防止特殊情况下的段落异常,ul->li标签内文字需p标签或span等包裹,否则回车会新建ul标签导致段落错乱 ##### V19.01.05 1. [新增] 附件上传自动插入编辑器设置 autoInsert, 添加设置参数 uploadFiles{autoInsert:true} 即可选中文件上传完之后自动插入编辑器,无需点确认按钮 #### 历史日志--V18.* #### 项目介绍 对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: 'your url', field: 'file',//上传时的文件参数字段名 accept: 'image', acceptMime: 'image/*', exts: 'jpg|png|gif|bmp|jpeg', size: 1024 * 10, done: function (data) {//文件上传接口返回code为0时的回调 } } , uploadVideo: { url: 'your url', 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: 'your url', 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); }) ```