ifram在bootstrap modal中演进的自适应迭代至1.0版本

2024-05-06 23:08

本文主要是介绍ifram在bootstrap modal中演进的自适应迭代至1.0版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 需引入layer.js loading加载遮罩层会被使用到
  • 0.1版本显示页面但大小会随机变化。
  • 0.2版本内嵌页面与主页面都要js控制,页面有时候不能显示。
  • 1.0版本内嵌页面无需写额外js,只需主页面js控制,代码实现了自适应,且显示正常。
  • ifram可能会在加载关闭时内存泄漏,此处显式调用ifram clear防止内存泄漏
var Tools = (function ($) {var IframeFirstClear = function (iframedom) {var ifd = $(iframedom);if (ifd.length > 0) {ifd[0].contentWindow.document.write(''); //清空iframe的内容ifd[0].contentWindow.close(); //避免iframe内存泄漏ifd.remove(); //删除iframeconsole.log('iframe-clean');}};return {IFC: IframeFirstClear};})(jQuery);Tools.IFC("#EPageIframe");
  • 配合bootstrap modal引入ifram自定义插件
 (function ($) {$.extend({modelshowiframe: function (options) {//面向对象的写法new modeladapt(this, options);}})var modeladapt = function (ele, options) {if (options == null)alert("arg error")this.element = ele;this.options = {labledom: "#EPageIframeModalLabel",labletext: "",iframedom: "#EPageIframe",iframesrc: "",modeldom: "#EPageIframeModal"};this.options = $.extend({}, this.options, options);this.init();}//初始化对象modeladapt.prototype = {init: function () {//初始化this.ModelIframe();},ModelIframe: function () {var that = this;$(that.options.labledom).text(that.options.labletext);$(that.options.modeldom).modal({ show: true, backdrop: "static" });var index = layer.load(0, { shade: false }); //loading层var iframe = document.createElement("iframe");iframe.id = "EPageIframe";iframe.src = that.options.iframesrc;iframe.style.width = "100%";iframe.setAttribute("frameborder", 0);iframe.setAttribute("scrolling", "no");document.getElementById("EPageIframeDiv").appendChild(iframe);console.log('iframe-ready');if (iframe.attachEvent) {$(iframe).load(function () {setTimeout(function () {var heightiframe = iframe.contentWindow.document.documentElement.scrollHeight;iframe.height = heightiframe;console.log('iframe-load-ok-A-' + heightiframe);layer.close(index); //iframe加载完毕  }, 100);});} else {$(iframe).load(function () {setTimeout(function () {var heightiframe = iframe.contentDocument.body.scrollHeight;iframe.height = heightiframe;console.log('iframe-load-ok-B-' + heightiframe);layer.close(index); //iframe加载完毕  }, 100);});}}}})(window.jQuery);</script>
  • bootstrap modal代码
<div class="modal fade" id="EPageIframeModal"><div class="modal-dialog" ><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h4 class="modal-title" id="EPageIframeModalLabel">消息</h4></div><div class="modal-body" id="EPageIframeDiv" style="clear:both;"></div></div></div>
</div>
  • 使用指南,主页面使用代码
  • labletext 头部名字
  • iframesrc 嵌套页面地址
$.modelshowiframe({labletext: "测试弹出页面",iframesrc: "/AAA/show/" + Id});

这篇关于ifram在bootstrap modal中演进的自适应迭代至1.0版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Linux升级或者切换python版本实现方式

《Linux升级或者切换python版本实现方式》本文介绍在Ubuntu/Debian系统升级Python至3.11或更高版本的方法,通过查看版本列表并选择新版本进行全局修改,需注意自动与手动模式的选... 目录升级系统python版本 (适用于全局修改)对于Ubuntu/Debian系统安装后,验证Pyt

MySQL 升级到8.4版本的完整流程及操作方法

《MySQL升级到8.4版本的完整流程及操作方法》本文详细说明了MySQL升级至8.4的完整流程,涵盖升级前准备(备份、兼容性检查)、支持路径(原地、逻辑导出、复制)、关键变更(空间索引、保留关键字... 目录一、升级前准备 (3.1 Before You Begin)二、升级路径 (3.2 Upgrade

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Java设计模式---迭代器模式(Iterator)解读

《Java设计模式---迭代器模式(Iterator)解读》:本文主要介绍Java设计模式---迭代器模式(Iterator),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录1、迭代器(Iterator)1.1、结构1.2、常用方法1.3、本质1、解耦集合与遍历逻辑2、统一

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

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

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

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p