layui框架实战案例(24):layedit工具栏添加查看源代码按钮的解决方案

news2024/11/15 6:14:56

layUI框架实战案例系列文章

  • layui框架实战案例(21):layui上传的哪些事(layui.upload组件、 file文件域、php后台上传)
  • layui框架实战案例(20):常用条件判断和信息展示技巧(图片预览、动态表格、短信已读未读、链接分享、信息脱敏、内置框架页)
  • layui框架实战案例(19):layui-table模块表格综合应用(筛选查询、导入导出、群发短信、一键审核、照片展示、隐私加密)
  • layui框架实战案例(18):保存草稿和单选radio复选框checkbox无focus属性快速聚焦跳转的解决方案
  • layui框架实战案例(17):流加载文档layui.flow组件的前后端解决方案
  • layui框架实战案例(16):xm-select下拉多选插件实战记录(远程搜索、过滤、翻页、单选、提示文字)
  • layui框架实战案例(15):上传提示413 request entity too large宝塔配置的解决方案
  • layui框架实战案例(14):tabs选项卡切换时echarts拉伸变形无法正常显示的解决方案
  • layui框架实战案例(13):colorpicker颜色选择器的使用
  • layui框架实战案例(12):layui标签输入框inputTag
  • layui框架实战案例(11):表单自定义验证规则
  • layui框架实战案例(10):短信验证码60秒倒计时
  • layui框架实战案例(9):layPage 静态数据分页组件
  • layui框架实战案例(8):web图片裁切插件croppers.js组件实现上传图片的自定义截取(含php后端)
  • layui框架实战案例(7):时间范围选择及时间处理的解决方案
  • layui框架实战案例(6):上传图片和视频自动调用IOS或安卓系统的摄像头功能
  • layui框架实战案例(5):基于PHP后端的layUI上传视频到七牛云对象储存并自动转码
  • layui框架实战案例(4):因内容安全策略导致弹出层模态框无法正常显示微信公众号文章使用window.open的解决方案
  • layui框架实战案例(3):layui上传错误请求上传接口出现异常解决方案
  • layui框架实战案例(2):layui文件上传PHP后台参数获取方式及JSON返回格式
  • layui框架实战案例(1):layui组件table异步加载数据结合php后台动态翻页的解决方案

其他目录

  • layui动态表格翻页和搜索的代码分析
  • layui实现定位、查询数据以及select筛选的组合功能
  • layui多文件上传与PHP后端对接的解决方案
  • layui内部表单互动的实战案例:根据radio单选框自动改变input内容
  • layui复选框checkbox全选和获取值的解决方案
  • layui和weui结合手机端select表单底部选择和被遮挡的解决方案

select编辑回显内容及事件调用

  • layUI框架实战案例系列文章
  • html容器代码
  • 富文本编辑
  • 封装调用方法
  • 验证内容


在这里插入图片描述
layedit是一款基于layui框架的富文本编辑器,适用于后台管理系统、博客编辑等场景,提供了很多实用的功能,包括但不限于:

字体、字号、颜色设置,加粗、斜体、下划线、删除线等文字样式设置。
图片、链接、表格、列表插入,源代码、全屏、撤销、重做等操作。
自定义工具栏。

html容器代码

    <div class="layui-form-item">
                            <label for="poi_content" class="layui-form-label">工程信息 <span class="x-red">*</span></label>
                            <div class="layui-input-inline" style="width: 100%;"><textarea name="poi_content" id="poi_content" class="layui-textarea"><p>1</p><p><img src="upload/poi/8_ad_214d2fa823d4d686c04fd41a4a5cff45.png" alt="8_ad_214d2fa823d4d686c04fd41a4a5cff45.png"><br></p></textarea></div>
                            <div class="layui-form-mid layui-word-aux"></div>
                        </div>

富文本编辑

  //编辑器上传图片;
        layedit.set({
            uploadImage: {
                url: '?m=Upload&a=uploadDeal&act=upEdit&fromType=poi&token=' + upToken
                , type: 'post'
            }
        });

        //编辑器
        var index1 = layedit.build('poi_content', {
            tool: ['strong', 'italic', 'underline', 'del', '|', 'left', 'center', 'right', 'link', 'unlink', 'image']
        });
        setHtmlCodeToEdit('poi_content',index1);//设置源码菜单

新增方法:setHtmlCodeToEdit('poi_content',index1);//设置源码菜单

其中poi_content为对应的HTML容器对应的ID

封装调用方法

/************layEdit富文本编辑器 Begin*********/
function setHtmlCodeToEdit(ele, id) {
    $("#" + ele).next().find('div.layui-layedit-tool').append('<span class="layedit-tool-mid"></span>');
    $("#" + ele).next().find('div.layui-layedit-tool').append('<i class="layui-icon layui-icon-code-circle" title="查看源码" style="font-size: 18px!important;" οnclick="getHtml(this,' + id + ')"></i> ');
}

//显示原代码
function getHtml(boj, index) {
    layui.use('layedit', function () {
        var layedit = layui.layedit, $ = layui.jquery;
        var context = layedit.getContent(index);
        if ($(boj).hasClass('layui-icon-code-circle')) {
            $(document.getElementById("LAY_layedit_" + Number(index))).contents().find("body")
                .html(HtmlUtil.htmlEncode(context));
            $(boj).removeClass("layui-icon-code-circle");
            $(boj).addClass("layui-icon-layouts");
            $(boj).attr("title", "查看HTML");
        } else if ($(boj).hasClass('layui-icon-layouts')) {
            $(document.getElementById("LAY_layedit_" + Number(index))).contents().find("body")
                .html(HtmlUtil.htmlDecode(context));
            $(boj).removeClass("layui-icon-layouts");
            $(boj).addClass("layui-icon-code-circle");
            $(boj).attr("title", "查看源码");
        }
    });
}

var HtmlUtil = {
    /*1.用浏览器内部转换器实现html转码*/
    htmlEncode: function (html) {
        //1.首先动态创建一个容器标签元素,如DIV
        var temp = document.createElement("div");
        //2.然后将要转换的字符串设置为这个元素的innerText(ie支持)或者textContent(火狐,google支持)
        (temp.textContent != undefined) ? (temp.textContent = html) : (temp.innerText = html);
        //3.最后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串了
        var output = temp.innerHTML;
        temp = null;
        return output;
    },
    /*2.用浏览器内部转换器实现html解码*/
    htmlDecode: function (text) {
        //1.首先动态创建一个容器标签元素,如DIV
        var temp = document.createElement("div");
        //2.然后将要转换的字符串设置为这个元素的innerHTML(ie,火狐,google都支持)
        temp.innerHTML = text;
        //3.最后返回这个元素的innerText(ie支持)或者textContent(火狐,google支持),即得到经过HTML解码的字符串了。
        var output = temp.innerText || temp.textContent;
        temp = null;
        return output;
    }
};

/************layEdit富文本编辑器 End*********/

验证内容

 var poi_content = layedit.getContent(index1);
            if (poi_content.length <= 0) {
                layer.msg("工程信息不能为空", {icon: 2, time: 2000});
                $('#poi_content').focus();
                return false;
            }
           

@漏刻有时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1126092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业如何防止文件泄密(图文+视频讲解)

数字化浪潮的推动下&#xff0c;企业文件已经成为企业竞争的核心资产之一。同时&#xff0c;文件泄密事件也频频发生&#xff0c;给企业带来了巨大的经济损失和声誉损失。 那如何有效地防止文件泄密已成为企业亟待解决的重要问题&#xff01;在查阅了大量资料后&#xff0c;小编…

Linux进程间通信之匿名管道

Linux进程间通信之匿名管道 进程间通信介绍1. 进程间通信的目的2. 进程间通信发展 什么是管道匿名管道1. 什么是匿名管道2. 匿名管道样例详解3. 原理4. 单个父进程与多个子进程管道间通信建立子进程任务相关的头文件主文件的建立执行结果 5. 管道读写规则6. 管道特点 进程间通信…

基于图像识别的跌倒检测算法 计算机竞赛

前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于图像识别的跌倒检测算法 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/…

分布式事务及CAP和BASE定理

一、分布式事务 单体应用肯定就不存在分布式事务了&#xff0c;只有在分布式微服务系统中&#xff0c;各个服务之间通过RPC调用后&#xff0c;每个微服务有自己和数据库的连接&#xff0c;各个微服务的回滚不影响其他的微服务事务&#xff0c;这几必须使用分布式事务来解决分布…

CASAIM自动激光3D测量系统助力海外家电组装企业IQC来料检测装配尺寸测量

随着家电产品的不断创新发展&#xff0c;海外家电组装企业也面临着越来越高的质量标准&#xff0c;几何尺寸测量与控制是保证产品交付质量的基础。零部件、外壳壳体经过国内或东南亚其他地区生产好后&#xff0c;为了确保产品质量和一致性&#xff0c;外协件物料需要送往组装厂…

FDWS9510L-F085车规级 PowerTrench系列 P沟道增强型MOS管

PowerTrench MOSFET 是优化的电源开关&#xff0c;可提高系统效率和功率密度。 它们组合了小栅极电荷 (Qg)、小反向恢复电荷 (Qrr) 和软性反向恢复主体二极管&#xff0c;有助于快速切换交流/直流电源中的同步整流。 采用屏蔽栅极结构&#xff0c;可提供电荷平衡。 利用这一先进…

吃瓜教程2|线性模型

线性回归 “广义的线性模型”&#xff08;generalized linear model&#xff09;&#xff0c;其中&#xff0c;g&#xff08;*&#xff09;称为联系函数&#xff08;link function&#xff09;。 线性几率回归&#xff08;逻辑回归&#xff09; 线性判别分析 想让同类样本点的…

biocParallel学习

我好像做了一个愚蠢的测试 rm(listls()) suppressPackageStartupMessages({library(SingleCellExperiment)library(scMerge)library(scater)library(Matrix) })setwd("/Users/yxk/Desktop/test/R_parallel/") load("./data/exprsMat.RData") load(".…

文心一言 VS 讯飞星火 VS chatgpt (119)-- 算法导论10.3 4题

四、用go语言&#xff0c;我们往往希望双向链表的所有元素在存储器中保持紧凑&#xff0c;例如&#xff0c;在多数组表示中占用前m 个下标位置。(在页式虚拟存储的计算环境下&#xff0c;即为这种情况。)假设除指向链表本身的指针外没有其他指针指向该链表的元素&#xff0c;试…

laravel框架介绍(二) 打开站点:autoload.php报错

Laravel&#xff1a;require..../vendor/autoload.php错误的解决办法 打开站点&#xff1a;http://laraveltest.com:8188/set_api-master/public/ set_api-master\public\index.php文件内容为&#xff1a; 解决办法&#xff1a; 1. cd 到该引用的根目录&#xff0c;删除 compo…

【JavaEE初阶】 常见的锁策略详解

文章目录 &#x1f6ec;常见的锁策略&#x1f334;乐观锁 vs 悲观锁&#x1f38b;读写锁&#x1f333;重量级锁 vs 轻量级锁&#x1f384;自旋锁&#xff08;Spin Lock&#xff09;&#x1f340;公平锁 vs 非公平锁&#x1f38d;可重入锁 vs 不可重入锁 &#x1f6eb;相关面试题…

超级马里奥

欢迎来到程序小院 超级马里奥 玩法&#xff1a;点击鼠标左键进行马里奥跳跃&#xff0c;带着马里奥跳跃不同的障碍物&#xff0c;统计分数&#xff0c;快去玩变态超级玛丽吧^^。开始游戏https://www.ormcc.com/play/gameStart/193 html <canvas id"gamescene"&g…

软件测试( 基础篇)

前言 从这篇博文开始&#xff0c;我们将作为一名刚刚加入测试团队的菜鸟&#xff0c;开始一次测试之旅。 在这里我们将讨论以下问题&#xff1a; 软件测试的生命周期 如何描述一个bug 如何定义bug的级别 bug的生命周期 产生争执怎么办 软件测试的生命周期 先回顾一个点&#…

TortoiseSVN安装与配置教程:使用内网穿透实现公网提交文件到本地SVN服务器

文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统&#xff0c;它与Apache Subversion&#xff08;SVN&#xff09;集成在一起&#xff0c;提供了一个用户友好的界面&#xff0c;方便用…

SpringBoot整合redis实现过期Key监控处理(最简单模式)

前言&#xff1a;写这篇文章的目的主要是这方面的知识我是第一次实际运用到&#xff0c;在项目里面有个功能&#xff0c;需要登录的时候根据手机号发送短信验证码&#xff0c;我看了公司的代码是用redis过期key监控实现的&#xff0c;由于之前没有接触过这类&#xff0c;现在写…

Java CC 解析 SQL 语法示例

示例&#xff1a;SimpleSelectParser 解析 select 11; 输出 2&#xff1b; 0&#xff09;总结 编写 JavaCC 模板&#xff0c;*.jj 文件。 编译生成代码文件。 移动代码文件到对应的包下。 调用生成的代码文件。 1&#xff09;JavaCC 模板 main/javacc/SimpleSelectParse…

C# Socket通信从入门到精通(3)——单个异步TCP客户端C#代码实现

前言: Socket通信中有tcp通信,并且tcp有客户端,tcp客户端程序又分为同步通信和异步通信,所谓同步通信其实就是阻塞式通信,比如客户端调用接收服务器数据函数以后,如果服务器没有发送数据给客户端,则客户端程序会一直阻塞一直到客户端接收到服务器的数据为止;所谓异步通…

电脑文件加密软件

天锐绿盾电脑文件加密软件是一款专业的信息安全防泄密软件。该软件基于核心驱动层的透明加密软件&#xff0c;为企业提供信息化防泄密一体化方案&#xff0c;不改变操作习惯&#xff0c;不降低工作效率&#xff0c;实现数据防泄密管理。 PC访问地址&#xff1a; https://isite…

Redis incr实现流水号自动增长

文章目录 问题描述&#xff1a;实现思路代码案例 问题描述&#xff1a; Java项目实现流水号自动增长&#xff0c;项目需求中有时需要生成一定规则递增编号&#xff1a; eg用户编码自动生成&#xff0c;规则&#xff1a;user7位数字&#xff0c;每次新增自增长&#xff0c;例&…

Nginx安装配置项目部署然后加SSL

个人操作笔记记录 第一步&#xff1a;把 nginx 的源码包nginx-1.8.0.tar.gz上传到 linux 系统 第二步&#xff1a;解压缩 tar zxvf nginx-1.8.0.tar.gz 第三步&#xff1a;进入nginx-1.8.0目录 使用 configure 命令创建一 makeFile 文件。 直接复制过去运行 ./configur…