弹出窗口内嵌iframe 框口自适应
说一下,弹出窗口还有内嵌一个iframe 这种模式应该是不科学的,但是公司项目里面就偏偏用到了,它这高低还不能只适应,所以我痛苦的日子来了
分析一下:
首先window.showDialog 方法的时候会指定一下高度什么的,但是window里面内容可能撑爆它
然后window 中的iframe里面的内容页可能撑爆iframe
所以要想解决高度自适应的问题,就是从最低一级的iframe 开始高低只适应,但是同时在iframe 高度自适应之后得马上让window 也高度自适应
代码如下:
1、在window里面写下:
var C_HEIGHT = "600px";
/**
* 模态窗口高度调整.
* 根据操作系统及ie不同版本,重新设置窗口高度,避免滚动条出现.
*/
function resetDialogHeight() {
if (window.dialogArguments == null) {
return; //忽略非模态窗口
}
var ua = navigator.userAgent;
var oFrame = document.getElementById("zyms"); var height = oFrame.document.body.scrollHeight;
if (ua.lastIndexOf("MSIE 6.0") != -1) {
if (ua.lastIndexOf("Windows NT 5.1") != -1) {
//alert("xp.ie6.0");
height = oFrame.document.body.offsetHeight;
// window.dialogHeight = (height + 102) + "px"; height = getHeight(height,102);
}
else if (ua.lastIndexOf("Windows NT 5.0") != -1) {
//alert("w2k.ie6.0");
height = oFrame.document.body.offsetHeight;
// window.dialogHeight = (height + 49) + "px";
height = getHeight(height, 49);
}
} else {
height = oFrame.document.body.scrollHeight;
height = getHeight(height, 10);
}
window.dialogHeight = parsePixel(height); }
/**
* Iframe窗口高度调整.
*/
function resetIframeHeight() {
var oFrame = document.getElementById("zyms");
oFrame.height = 0;
var fdh = (oFrame.Document ? oFrame.Document.body.scrollHeight : oFrame.contentDocument.body.offsetHeight);
oFrame.height = (fdh >= 500 && fdh <= 600 ? fdh : 600);
}
/**
* 把字符串转为像素单位
*/
function parsePixel(a) {
if(a==null || typeof a =='undifined' || a==""){
return '0px';
}
return a.toString().indexOf('px')>0 ? a.toString() : a+'px';
}
/**
* 设定高度的合理区间
* 不同浏览器边框等高度不一样,故增量也不一下
*/
function getHeight(height, increment) {
if (parseInt(height) > 500 && parseInt(height) < 600) {
height = (height + increment);
} else {
height = C_HEIGHT;
}
return height;
}
<iframe id="zyms" frameborder="0" scrolling="yes" style="width:1000px;" onload=" resetIframeHeight();resetDialogHeight();">
</iframe>
3、iframe 关联的页面样式代码:
<style type="text/css">
body
{
overflow-y:auto;
overflow-x:hidden;
}
</style>
弹出窗口内嵌iframe 框口自适应的更多相关文章
- ios11,弹出层内的input框光标错位 键盘弹出时,输入信息,光标一直乱跳
之前开发了一个微信项目,维护期中苹果手机突然出现光标错位现象,经过排查,发现是最新的ios11系统的锅. 具体情况:弹出层使用position: fixed:弹出层内附带input/textare ...
- 调试一个Ext打开的window窗口内嵌Iframe的form提交问题
一个奇怪的问题是:潜逃在iframe里的页面单独提交都是正常,放到iframe里面通过js调用在parent页面.提交总是被莫名其妙的杀掉. 确定js简单无错之后,继续看parent的处理逻辑,有这么 ...
- NSS_06 extjs弹出窗口上的文本框默认获得焦点
这个问题其实是个窗户纸, 没什么技术含量,但是做的过程中有点曲折, 所以也记录下来吧. Ext.window.Window中有focus(o1, o2)方法, 作用:Try to focus this ...
- 深入浅出ExtJS 第七章 弹出窗口
7.1 Ext.MessageBox 7.1 Ext.MessageBox //Ext.MessageBox为我们提供的alert/confirm/prompt等完全可以代替浏览器原生; 7.1.1 ...
- 原生Js封装的弹出框-弹出窗口-页面居中-多状态可选
原生Js封装的弹出框-弹出窗口-页面居中-多状态可选 实现了一下功能: 1.title可自定义 可拖拽 2.width height可以自定义 3.背景遮罩和透明度可以自定义 4.可以自己编辑弹出 ...
- 微信内置浏览器浏览H5页面弹出的键盘遮盖文本框的解决办法(转)
最近在做微信公众号的内嵌页面,发现点击输入框时键盘盖住文本框,找到一段代码解决了这个问题. iOS和android手机都已亲测,需要的可以直接拷贝到代码中使用. js代码如下: $(function ...
- 20160513--js 弹出窗口带有iframe控件 备忘
需要引用JQuery. /*! * 主 题:<页面弹出窗口> * 说 明:用于页面弹出的窗口. * 功能描述: * 1.生成弹出窗口,窗口内包括iframe控件: * 2.窗口弹出时,生成 ...
- Java Selenium (十二) 操作弹出窗口 & 智能等待页面加载完成 & 处理 Iframe 中的元素
一.操作弹出窗口 原理 在代码里, 通过 Set<String> allWindowsId = driver.getWindowHandles(); 来获取到所有弹出浏览器的句柄, 然 ...
- ajax弹出窗口
提取自ZCMS的弹出框: 代替window.open.window.alert.window.confirm:提供良好的用户体验: 水晶质感,设计细腻,外观漂亮: 兼容ie6/7/8.firefox2 ...
随机推荐
- python代码的书写要求
刚刚接触python,python是对缩进要求很严格的语言,对于我这种平时tab,空格乱用的菜鸟来说简直是吃劲苦头阿,经常出现IndentationError.在这里我就结合自己的经历说说书写格式,如 ...
- Bower前端包管理器
bower 前端包管理器 为什么要用它 一个新的web项目开始,我们总是很自然地去下载需要用到的js类库文件,比如jQuery.随着项目的进展,我们可能又需要Bootstrap3,其中每个框架之间的依 ...
- php用百度地图API进行IP定位和GPS定位
<?php /** * 根据地理坐标获取国家.省份.城市,及周边数据类(利用百度Geocoding API实现) * 百度密钥获取方法:http://lbsyun.baidu.com/apico ...
- VS2013无法链接到TFS (转)
VS2013无法链接到TFS(Visual studio online),错误TF31001,TF31002 TF31002: Unable to connect to VisualStudio ...
- poj3308
二分图的最小点权覆盖,选定点集,与该点集有关的边覆盖所有顶点,且该点集的点权值和最小. 有类似于匈牙利算法一样的带权匹配算法,但是这里就不介绍了.个人比较推荐,用最大流算法更好理解,写起来更容易. 题 ...
- USACO Section 5.1 Musical Themes(枚举)
直接枚举O(n^3)会TLE,只要稍微加点优化,在不可能得到更优解时及时退出.其实就是道水题,虽说我提交了6次才过= =..我还太弱了 -------------------------------- ...
- 十大最值得注意的MySQL变量
MySQL数据库中的变量非常多,下文为您整理出了十大最值得注意的MySQL变量,希望对您学习MySQL数据库能够有一些帮助. AD: MySQL变量很多,其中有一些MySQL变量非常值得我们注意,下面 ...
- Day 1: How to install jedi/codeintel plugin for sublime on Linux
Step 1, Install sublime3 Download sublime2/3 from http://www.sublimetext.com/ $tar -jxvf sublime_tex ...
- 四轴飞行器1.7 NRF24L01P无线通讯和改进型环形缓冲
原创文章,欢迎转载,转载请注明出处 这次花了10多天了才再次写blog,一是中秋优点小活动,二是这次完成了不少东西.. 终于接近完成了,这次完成了NRF的通讯,并且用了改进的环形缓冲和简单的通讯协议规 ...
- iOS 开源库
youtube下载神器:https://github.com/rg3/youtube-dl我擦咧 vim插件:https://github.com/Valloric/YouCompleteMevim插 ...