Blog项目切换Markdown编辑器———LayUI弹出层弹出写在页面的内容导致的各种bug

本文主要是介绍Blog项目切换Markdown编辑器———LayUI弹出层弹出写在页面的内容导致的各种bug,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【2024.5.24回顾】

1 问题描述(描述完自己解决了…)

正常情况

点击添加文章按钮后,弹出文章编辑界面,如果用富文本功能编辑,则一切正常。可以多次打开、关闭

Markdown

如果在弹出层中点击了切换编辑器按钮,会成功切换为markdown文本编辑器,可以编辑相应的文章并提交。

但是,如果继续在这个页面操作就会出现:

第二次打开还是Markdown编辑器而且只清空了标题,内容还是上次提交的内容。并且这次打开之后,再点击提交文章,文章能够成功提交但是弹层不会自动关闭,点击×也不行,就卡在这了。

第一次点击切换编辑器:

在这里插入图片描述

第一次提交成功后,再次点击添加文章:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

原因应该是因为空指针异常,页面卡在那里了。简单修改后可以关闭了。

2 $('#addForm').html()与$('#addForm')

在这里插入图片描述
在这里插入图片描述

$('#addForm').html()返回的是字符串类型,表示 #addForm 元素的内部 HTML 内容。

$('#addForm') 返回的是 jQuery 对象,表示 #addForm 元素本身。相当于一个重定向,所以在弹出层里对它进行的修改和填写,会保留下来,再次添加只不过是将它的位置改变到了弹出层里边而已。之所以会清空标题是因为弹出成功的函数里有一句$('#addForm form')[0].reset();

$('#addForm').html():

case 'add':
var index = layer.open({type: 1,//1 html文本,dom/js对象  2 放链接,链接到其他jsp/网页链接title: '添加文章',area: ['90%', '90%'],//宽高// content: '<div style="padding: 11px;">任意 HTML 内容</div>'content: $('#addForm').html(),//.html返回内部所有html 字符串形式 子节点 把它放在这 放一段页面//content: $('#addForm'),//       把它放在这 放一段页面success: function () {//success指弹出成功  感觉这里边的东西都可以直接写在外面啊-->不一样 有区别//查询博客类型并回显到选择下拉框$.post(//ajax3'/type?method=selectBlogType',function (result) {console.log(result);$('#addBlogTypeId option:gt(0)').remove();//清除原来的数据$(result.data).each(function () {//result是一个封装对象包括code、msg、data需要.data才能访问到查询结果$('#addBlogTypeId').append('<option value="' + this.id + '">' + this.name + '</option>')});form.render('select');},'json');}
})

由于某些暂未分析出来的原因,这一系列操作(切换编辑器等)都在原页面的基础上生效,而页面弹出的只是一个复制品,所以不会有任何反馈,点击按钮也没反应,函数里边的打印到控制台都没有。

$('#addForm'):

case 'add':
var index = layer.open({type: 1,//1 html文本,dom/js对象  2 放链接,链接到其他jsp/网页链接title: '添加文章',area: ['90%', '90%'],//宽高// content: '<div style="padding: 11px;">任意 HTML 内容</div>'//content: $('#addForm').html(),//.html返回内部所有html 字符串形式 子节点 把它放在这 放一段页面content: $('#addForm'),//       把它放在这 放一段页面success: function () {//success指弹出成功  感觉这里边的东西都可以直接写在外面啊-->不一样 有区别//查询博客类型并回显到选择下拉框$.post(//ajax3'/type?method=selectBlogType',function (result) {console.log(result);$('#addBlogTypeId option:gt(0)').remove();//清除原来的数据$(result.data).each(function () {//result是一个封装对象包括code、msg、data需要.data才能访问到查询结果$('#addBlogTypeId').append('<option value="' + this.id + '">' + this.name + '</option>')});form.render('select');},'json');}
})

这样相当于是将页面上的元素重定向至layer层进行操作,所以自始至终都是在改变一个表单。解决bug后基本可以实现与单独写一个jsp页面一样的效果,但是无法恢复为富文本编辑器而是停留在markdown编辑器,而且不能够完全清除上一篇博客的内容,还需要修改。

而且这样弄的话编辑博客内容的回显功能更难做。

单独写一个添加jsp就没这么多事!

这篇关于Blog项目切换Markdown编辑器———LayUI弹出层弹出写在页面的内容导致的各种bug的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1032752

相关文章

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

springboot项目中使用JOSN解析库的方法

《springboot项目中使用JOSN解析库的方法》JSON,全程是JavaScriptObjectNotation,是一种轻量级的数据交换格式,本文给大家介绍springboot项目中使用JOSN... 目录一、jsON解析简介二、Spring Boot项目中使用JSON解析1、pom.XML文件引入依

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

eclipse如何运行springboot项目

《eclipse如何运行springboot项目》:本文主要介绍eclipse如何运行springboot项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目js录当在eclipse启动spring boot项目时出现问题解决办法1.通过cmd命令行2.在ecl

使用Python实现网页表格转换为markdown

《使用Python实现网页表格转换为markdown》在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,本文将使用Python编写一个网页表格转Markdown工具,需... 在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,以便在文档、邮件或