适应各个浏览器的iframe高度自动调整

1、mzone.cc.js文件,用来创建基于命名空间的对象

 代码如下 复制代码

function mzone(){};

/**

 

 * Desc   : 使用给定的对象路径进行对象的创建

 

 * Para   : objPath - 对象路径,字符串类型,格式为:xx.yy.zz

 

 * Return : 没有返回值,创建成功后直接使用对象路径即可

 

 */

mzone.createObject = function(/*string*/objPath) {

 

 if (!objPath || typeof(objPath) != 'string') return;

 

 var root = window;

 

 var parts = objPath.split('.');

 

 for (var i = 0; i < parts.length; i ++) {

 

  if (typeof(root[parts[i]]) == 'undefined') root[parts[i]] = {};

 

  root = root[parts[i]];

 

 }

 

};

2、mzone.cc.iframe.js文件,iframe的自动高度调整

 

 * Title   : iframe高度自动调整,适应各个浏览器(IE、Firefox、Chrome等).需要注意的是在chrome下测试时必须在web容器中测试

 

 

 代码如下 复制代码

mzone.createObject("mzone.cc.iframe");

/**

 

 * Desc   : 定义对象mzone.cc.iframe的静态方法实现iframe动态调整

 

 * Para   : iframe - 要调整的iframe对象,DOM对象

 

 *          extHeight - 自动计算iframe的高度后额外增加的高度值,数字型

 

 *          minHeight - iframe的最小高度,数字型

 

 * Return : 没有返回值

 

 */

 

mzone.cc.iframe.autoHeight = function(/*object*/iframe, /*int*/extHeight, /*int*/minHeight) {

 

 iframe.style.display = "block";

 

 if (iframe.contentDocument && iframe.contentDocument.body.offsetHeight) { // ff,chrome等

 

  var h = parseInt(iframe.contentDocument.body.offsetHeight) + 50;

 

  h += extHeight;

 

  if (h < minHeight) h = minHeight;

 

  iframe.height = h + "px";

 

 } else if (iframe.Document && iframe.Document.body.scrollHeight) { // IE

 

  var h = parseInt(iframe.Document.body.scrollHeight) + 35;

 

  h += extHeight;

 

  if (h < minHeight) h = minHeight;

 

  iframe.height = h + "px";

 

 } else {

 

  var h = parseInt(iframe.contentWindow.document.documentElement.scrollHeight) + 35;

 

  h += extHeight;

 

  if (h < minHeight) h = minHeight;

 

  iframe.height = h + "px";

 

 }

 

}

将以上两个js保存并引入到页面中就可以按照如下方法调用实现iframe的高度自动调整了:

 代码如下 复制代码

      var iframe = document.getElementById("iframe_body"); // iframe对象

     

var extHeight = 0; // 要额外增加的iframe的高度值

 

var minHeight = 300; // iframe的最小高度设置

mzone.cc.iframe.autoHeight(iframe, extHeight, minHeight);

以上脚本在IE、Firefox和Chrome下都测试通过,需要注意的是在google的Chrome浏览器中离线测试时是有错误的,需要在web容器(如apache或IIS)中进行测试才能够看到效果。

时间: 2024-09-20 06:29:09

适应各个浏览器的iframe高度自动调整的相关文章

兼容主流浏览器的iframe自适应高度js脚本

 兼容主流浏览器的 iframe 自适应高度,很实用的,具体的js脚本如下,感兴趣的朋友可不要错过  兼容主流浏览器的 Iframe 自适应高度,js脚本如下:   代码如下: //iframe 高度自适应  function iframeAutoFit(iframeObj) {  setTimeout(function () {  if (!iframeObj) return;  iframeObj.height = (iframeObj.Document ? iframeObj.Docume

兼容主流浏览器的iframe自适应高度js脚本_javascript技巧

兼容主流浏览器的 Iframe 自适应高度,js脚本如下: 复制代码 代码如下: //iframe 高度自适应 function iframeAutoFit(iframeObj) { setTimeout(function () { if (!iframeObj) return; iframeObj.height = (iframeObj.Document ? iframeObj.Document.body.scrollHeight : iframeObj.contentDocument.bod

js实现iframe 高度自适应

 <script type="text/javascript"> //** iframe自动适应页面 **// //输入你希望根据页面高度自动调整高度的iframe的名称的列表 //用逗号把每个iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一个窗体,则不用逗号. //定义iframe的ID var iframeids = ["top1"] //如果用户的浏览器不支持if

Iframe高度自适应(兼容IEFirefox、同域跨域)

在实际的项目进行中,很多地方可能由于历史原因不得不去使用iframe,包括目前正火热的应用开发也是如此. 随之而来的就是在实际使用iframe中,会遇到iframe高度的问题,由于被嵌套的页面长度不固定而显示出来的滚动条,不仅影响美观,还会对用户操作带来不便.于是自动调整iframe的高度就成为本文的重点. 采用JavaScript来控制iframe元素的高度是iframe高度自适应的关键,同时由于JavaScript对不同域名下权限的控制,引发出同域.跨域两种情况. 同域时Iframe高度自适

iframe 高度设置

 谓iframe自适应高度,就是,基于界面美观和交互的考虑,隐藏了iframe的border和scrollbar,让人看不出它是个iframe.如果iframe始终调用同一个固定高度的页面,我们直接写死iframe高度就可以了.而如果iframe要切换页面,或者被包含页面要做DOM动态操作,这时候,就需要程序去同步iframe高度和被包含页的实际高度了. 如果iframe的高度没有确定,那将是初始的高度. iframe是网页中的一部分,其大小还要受到网页的限制,设置最高可以使用height="1

跨域iframe高度自适应 改进版(兼容)

采用JavaScript来控制iframe元素的高度是iframe高度自适应的关键,同时由于JavaScript对不同域名下权限的控制,引发出同域.跨域两种情况. 由于客户端js使用浏览器的同源安全策略,跨域情况下,被嵌套页面如果想要获取和修改父页面的DOM属性会出现权限不足的情况,提示错 误:Permission denied to access property 'document'.这是因为除了包含脚本的文档载入的主机外,同源策略禁止客户端脚本链接到其他任何主机或者访问其他任何主机的数据.

jQuery解决iframe高度自适应代码_jquery

复制代码 代码如下: <script type="text/javascript"> <!-- $(     function()     {                          //iframe高度随内容自动调整         $('.main').load(          function()             {                 $(this).height($(this).contents().find("b

支持跨域iframe高度随内容动态缩放自适应

iframe高度随页面内容自适应高度,当页面高度变动时iframe高度也自动变化 浏览器兼容:IE6++.Firefox全系列.Chrome全系列.(其他版本浏览器未做测试,期待你测试评论反馈以完善本文,谢谢) 同域环境下实现方法: 方法一:仅修改iframe父页面(iframeA.php),iframe子页面内容(iframeB.php)不用添加其他js或额外代码 iframe父页面(iframeA.php)添加代码如下:  代码如下 复制代码 <iframe width="100%&q

iframe高度自适应和宽度自适应

这是一个兼容所有浏览器的iframe自适应代码,他可以对高度与宽度进行自适应,有需要的朋友可以参考一下. <script language="JavaScript"> /**/ //iframe高度自适应 function IFrameReSize(iframename) {      var pTar = document.getElementById(iframename);      if (pTar) {  //ff         if (pTar.content