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

相关文章

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

C#中图片如何自适应pictureBox大小

《C#中图片如何自适应pictureBox大小》文章描述了如何在C#中实现图片自适应pictureBox大小,并展示修改前后的效果,修改步骤包括两步,作者分享了个人经验,希望对大家有所帮助... 目录C#图片自适应pictureBox大小编程修改步骤总结C#图片自适应pictureBox大小上图中“z轴

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

你的华为手机升级了吗? 鸿蒙NEXT多连推5.0.123版本变化颇多

《你的华为手机升级了吗?鸿蒙NEXT多连推5.0.123版本变化颇多》现在的手机系统更新可不仅仅是修修补补那么简单了,华为手机的鸿蒙系统最近可是动作频频,给用户们带来了不少惊喜... 为了让用户的使用体验变得很好,华为手机不仅发布了一系列给力的新机,还在操作系统方面进行了疯狂的发力。尤其是近期,不仅鸿蒙O

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

windows端python版本管理工具pyenv-win安装使用

《windows端python版本管理工具pyenv-win安装使用》:本文主要介绍如何通过git方式下载和配置pyenv-win,包括下载、克隆仓库、配置环境变量等步骤,同时还详细介绍了如何使用... 目录pyenv-win 下载配置环境变量使用 pyenv-win 管理 python 版本一、安装 和

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

迭代器模式iterator

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/iterator 不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素