C#结合JS 修改解决 KindEditor 弹出层问题

目录

问题现象

原因分析

范例运行环境

解决问题

修改 kindeditor.js

C# 服务端更新

小结


问题现象

KindEditor 是一款出色的富文本HTML在线编辑器,关于编辑器的详细介绍可参考我的文章《C# 将 TextBox 绑定为 KindEditor 富文本》,这里我们讲述在使用中遇到的一个问题,在部署到某些 WEB 应用项目中,点击类似弹出层功能时,只显示了遮罩层,而内容层则定位无法正确显示,下面所列是一些有关弹出层的功能,正确显示如下图:

 

 

但某些时候,会只显示遮罩层,无法显示弹出层,如下图:

原因分析

在浏览器显示内容中右击审查元素(360极速,edge则为检查元素),如下图:

发现遮罩层输出正常,为绝对定位,并设置正确了 left 、top、width、height 值,但排查到 css class 为 ke-dialog 的弹出层时,发现 position 定位缺失了 top 值,这应该是弹出层问题之所在。

范例运行环境

操作系统: Windows Server 2019 DataCenter

.net版本: .netFramework4.0 或以上

KindEditor version 4.1.7 (2013-04-21)

开发工具:VS2019  C# 

解决问题

修改 kindeditor.js

如下图,我们发现遮罩层的 z-index 值为 811212,弹出层的 z-index 值为 811213:

 

因此打开 kindeditor.js 核心文件进行查找修改,该文件存在于插件应用的根目录:

 

按 811213 进行查找,发现如下图代码:

 

可试图在 options 选项里增加初始的 top 属性值为 '100px',保存文件再试。 

C# 服务端更新

 在我的文章《C# 将 TextBox 绑定为 KindEditor 富文本》里我们创建了 KindEditor 类,可修改类代码,通过时间戳引入更新后的js版本,重写后的代码如下:

public class KindEditor{Page CurrentPage = null;public KindEditor(object page){if (page == null){return;}CurrentPage = (Page)page;}public string init(string[] idList){return init(idList, null);}public string init(string[] idList,Literal writeControl){TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);string timestamp= Convert.ToInt64(ts.TotalSeconds).ToString();HtmlLink cssLink = new HtmlLink();cssLink.Attributes.Add("rel", "stylesheet");cssLink.Href = "/common/kindEditor/themes/default/default.css";CurrentPage.Header.Controls.Add(cssLink);HtmlLink cssLink2 = new HtmlLink();cssLink2.Attributes.Add("rel", "stylesheet");cssLink2.Href = "/common/kindEditor/plugins/code/prettify.css";CurrentPage.Page.Header.Controls.Add(cssLink2);HtmlGenericControl sc = new HtmlGenericControl("script");sc.Attributes.Add("charset", "uft-8");sc.Attributes.Add("src", "/common/kindEditor/kindeditor.js?v="+timestamp);CurrentPage.Page.Header.Controls.Add(sc);HtmlGenericControl sc2 = new HtmlGenericControl("script");sc2.Attributes.Add("charset", "uft-8");sc2.Attributes.Add("src", "/common/kindEditor/lang/zh_CN.js");CurrentPage.Page.Header.Controls.Add(sc2);HtmlGenericControl sc3 = new HtmlGenericControl("script");sc3.Attributes.Add("charset", "uft-8");sc3.Attributes.Add("src", "/common/kindEditor/plugins/code/prettify.js");CurrentPage.Page.Header.Controls.Add(sc3);string js = fLoadFromFile(CurrentPage.Request.PhysicalApplicationPath + "common/kindEditor/init.js", Encoding.Default);HtmlGenericControl sc4 = new HtmlGenericControl("script");foreach (string id in idList){sc4.InnerHtml += js.Replace("{0}", id);}CurrentPage.Page.Header.Controls.Add(sc4);return "";}public string LoadFromFile(string PathFile,System.Text.Encoding encodtype){FileStream fs;StreamReader newsfile;String linec,x_filecon="";fs=new FileStream(PathFile,FileMode.Open);newsfile=new StreamReader(fs,encodtype); try{linec=newsfile.ReadLine();while(!(linec==null)){x_filecon+=linec+"\r\n";linec=newsfile.ReadLine();}newsfile.Close();fs.Close();}catch(Exception){newsfile.Close();fs.Close();}finally{newsfile.Close();fs.Close();}return x_filecon;}//LoadFromFile Function}

在 init 方法中生成时间戳变量 timestamp, 并在服务端 header 修改 sc.Attributes.Add("src", "/common/kindEditor/kindeditor.js?v="+timestamp);  的时间戳版引用,以便于调试修改和刷新。至此问题解决。 

小结

在调试成功完成后,可关闭时间戳版本引用方法以进行缓存操作,防止每次都重新加载文件内容。

关于弹出层显示如果不修改代码,还可以使用一种消极方法进行操作,即点击其全屏功能,如下图:

全屏后兼容性比较好,未出现弹出层定位不准的问题,但如果在整体操作界面上来说,来回的切换全屏模式比较繁琐。

到此关于修改解决 KindEditor 弹出层问题就介绍到这里,感谢您的阅读,希望本文能够对您有所帮助。

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

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

相关文章

人工智能不是一根魔杖——它有内在的问题

人工智能不是一根魔杖——它有内在的问题,很难解决,而且可能很危险 到目前为止,我们都听说过很多关于人工智能(AI)的事情。你可能已经使用过无数可用的人工智能工具。对一些人来说,人工智能就像一根预测未来的魔杖。 但人工智能…

有没有和ai聊天的软件?介绍这三款聊天软件

有没有和ai聊天的软件?在科技飞速发展的今天,人工智能(AI)已经渗透到我们生活的方方面面,其中AI聊天软件以其独特的魅力,赢得了越来越多用户的青睐。今天,我们就来一起探索三款智能聊天软件的功…

LogicFlow 学习笔记——9. LogicFlow 进阶 节点

LogicFlow 进阶 节点(Node) 连线规则 在某些时候,我们可能需要控制边的连接方式,比如开始节点不能被其他节点连接、结束节点不能连接其他节点、用户节点后面必须是判断节点等,想要达到这种效果,我们需要为…

Typora—适用于 Mac 和 Win 系统的优秀 Markdown 文本编辑器

Typora 是一款适用于 Mac 和 Win 系统的优秀 Markdown 文本编辑器,它以其简洁易用的界面和强大的功能受到了众多用户的喜爱。 首先,Typora 的界面设计非常简洁直观,没有过多繁杂的菜单和按钮,让用户能够专注于写作本身。它采用实时…

LVS – NAT 模式集群构建

目录 1 环境准备 1.1 准备四台服务器 1.2 IP与网关均按照下图配置 1.3 网卡配置 1.4 real server 安装 web服务 1.5 安装ipvsadm 管理工具 2 使用ipvsadm管理LVS 2.1 创建集群指定使用的算法 2.2 添加真实服务器指定工作原理 2.3 查看是否正确创建集群 2.4 开启FORWARD路由转发…

​一个高清影像下载插件

数据是GIS的血液! 虽然我们在水经微图(简称“微图”)中可以下载各种各样丰富的地图数据,但相信大家对数据的追求是无止境的。 我们现在就来分享一下,如何在QGIS中下载高清卫星影像的方法。 如果你需要最新版本的QGI…

最新下载:Hype 4 mac版【软件附加安装教程】

Hype是一款强大的Mac OS平台 HTML5 创作工具,它可以在网页上做出赏心悦目的动画效果,创建丰富的网页交互动画,支持层、时间轴等编辑方式,并能很好的导出HTML5/CSS3/JavaScript,在台式机,智能手机和iPad上流…

裁剪图片的最简单方法?这四种裁剪方法真的超级简单!

裁剪图片的最简单方法?在丰富多彩的现代生活中,图片成为了我们表达、沟通甚至展示身份的重要媒介,然而,无论是出于个人审美还是专业需求,图片的格式和尺寸往往成为了我们不得不面对的问题,特别是那些未经雕…

flink1.12.0学习笔记(一)-部署与入门

flink1.12.0学习笔记(1)-部署与入门 1-1-Flink概述 Flink诞生 Flink 诞生于欧洲的一个大数据研究项目 StratoSphere。该项目是柏林工业大学的一个研究性项目。早期, Flink 是做 Batch 计算的,但在 2014 年, StratoS…

mathtype7.6官方无需激活版安装包下载

大家好,今天我要和大家分享的是一款非常实用的数学工具——mathtype7.6最新版本!📐 作为一个数学专业的学生,我经常需要处理大量的数学公式和符号。以前我都是用手写或者电脑自带的公式编辑器,但是效率低下而且容易出错…

课设--学生成绩管理系统(二)

欢迎来到 Papicatch的博客 目录 🐋引言 🦈编写目的 🦈项目说明 🐋产品介绍 🦈产品概要说明 🦈产品用户定位 🦈产品中的角色 🐋 产品总体业务流程图 🐋 产品功…

装机必备-WinRAR安装教程

软件介绍:WinRAR 是一款功能强大的压缩包管理器,可用于备份数据,缩减电子邮件附件的大小,解压缩从 Internet 上下载的RAR、ZIP及其它类型文件,新建 RAR 及 ZIP 格式等的压缩类文件。这是我们新电脑或重装系统后必须安装…

adb常用命令详解--提升开发效率利器

文章目录 文件管理截屏与录屏logcat 使用dumpsys 相关ps 相关am 相关pm 相关wm 相关setprop 设置属性input 相关adb connect 远程无线调试其它 本文首发地址 https://h89.cn/archives/281.html 最新更新地址 https://gitee.com/chenjim/chenjimblog 博主 Linux 使用较多&#x…

04 翼型和机翼、尾翼几何选择

04 翼型和机翼、尾翼几何选择 4 -1 引言4-2 翼型的选择4-2-1 翼型的几何4-2-2 翼型的升力和阻力4-2-3 翼型选择与设计4-2-4 设计升力系数4-2-5 失速4-2-6 翼型厚度比4-2-7 关于翼型其他方面的考虑 4-3 机翼几何外形4-3-1 展弦比4-2-3 机翼后掠角4-3-3 机翼稍根比4-3-4 机翼扭转…

团结的力量:友情、互助与感恩

时间如白驹过隙,半载光阴转瞬即逝。回首过去的六个月,在CSDN平台上,我经历了无数的挑战和成长。在大厂和阿豪的帮助下,我的粉丝数终于突破了万大关。这不仅是我个人的成就,更是我们团结、互助和感恩精神的见证。 初识…

aardio实战篇) 下载微信公众号文章为pdf和html

首发地址: https://mp.weixin.qq.com/s/w6v3RhqN0hJlWYlqTzGCxA 前言 之前在PC微信逆向) 定位微信浏览器打开链接的call提过要写一个保存公众号历史文章的工具。这篇文章先写一个将文章保存成pdf和html的工具,后面再补充一个采集历史的工具&#xff0c…

HTTP协议版本历程

HTTP协议的发展历程 版本推出年份当前状态HTTP/0.91991年已过时HTTP/1.01996年已过时HTTP/1.11997年标准HTTP/2.02015年标准HTTP/3.02022年标准 HTTP/0.9 HTTP/0.9非常简单,并不涉及数据包传输,通过请求和响应的交换达成通信,请求由单行指…

SmartEDA、Multisim、Proteus大比拼:电路设计王者之争?

在电路设计领域,SmartEDA、Multisim和Proteus无疑是三款备受瞩目的软件工具。它们各自拥有独特的功能和优势,但在这场电路设计王者的竞争中,谁才是真正的领跑者?让我们深入探究这三款软件的异同,揭示它们各自的魅力所在…

图像处理与视觉感知复习--图像特征描述图像生成

文章目录 角点(关键点)的特点图像分类的流程梯度方向直方图(HOG)流程平移、旋转和尺度特征(SIFT)流程常用的图像生成模型GAN的原理Diffusion Model的原理mAP计算方法 角点(关键点)的…

Vue48-ref属性

一、需求:操作DOM元素 1-1、使用原生的id属性 不太好! 1-2、使用 ref属性 原生HTML中,用id属性给元素打标识,vue里面用ref属性。 给哪个元素加了ref属性,vc实例对象就收集哪个元素!!&#xff0…