jQuery实现iframe宽度、高度自适应方法

高度自适应超级简单的方法,也不用写什么判断浏览器高度、宽度啥的。

下面的两种方法自选其一就行了。一个是放在和iframe同页面的,一个是放在test.html页面的。
注意别放错地方了哦。

iframe代码,注意要写ID

 代码如下 复制代码

<iframe src="test.html" id="main" width="700" height="300" frameborder="0" scrolling="auto"></iframe>

jquery代码1:

 代码如下 复制代码

//注意:下面的代码是放在test.html调用

$(window.parent.document).find("#main").load(function(){
var main = $(window.parent.document).find("#main");
var thisheight = $(document).height()+30;
main.height(thisheight);
});

jquery代码2:

//注意:下面的代码是放在和iframe同一个页面调用

 代码如下 复制代码

$("#main").load(function(){
var mainheight = $(this).contents().find("body").height()+30;
$(this).height(mainheight);
});

需要最小高度:

 代码如下 复制代码

$("你的id").load(function(){   //一定要有.load等载入完成
        var iframeHeight = $(this).contents().find("html").height();     //写find("body")是无法获取高度的

        if( iframeHeight < 600){          //如果需要最小高度,就有了if判断,
            $(this).attr("height",600)     //如果高度小于600,则把iframe高度改为600
        }
        else{
        $(this).attr("height",iframeHeight)    //如果高度大于或者等于600时,则iframe高度等于嵌进来html的高度
        }
    });

宽度同理,把.height()改为.width()即可获取宽度

如下,iframe宽度、高度自适应

如何使用jQuery实现iframe宽度、高度自适应?其实很简单,只需如下代码:

 代码如下 复制代码

jQuery(document).ready(function ($) {
 // “iframe”为iframe的ID,在其加载完成时触发事件。
 $('#iframe').load(function () {
  // “ref_page”为引用页面DIV的ID,获取DIV的外部宽度、外部高度。
  var width = $(this).contents().find('#ref_page').outerWidth();
  var height = $(this).contents().find('#ref_page').outerHeight();

  // 设置iframe的宽度、高度。
  $(this).width(width);
  $(this).height(height);
 });
});

为了让iframe的宽度与高度能够与子页面的宽度与高度准确匹配,让子页面完整呈现,必须注意以下事项:1、子页面body的margin、padding样式必须为style="margin: 0 0; padding: 0 0;";2、引用的DIV(例如代码中的div#ref_page)应为子页面的容器,子页面的所有内容都必须放在容器中,同时引用的DIV的margin样式必须为style="margin: 0 0;"。

时间: 2024-12-04 22:27:19

jQuery实现iframe宽度、高度自适应方法的相关文章

iframe窗口高度自适应的实现方法

 这篇文章主要介绍了iframe窗口高度自适应的实现方法,有需要的朋友可以参考一下 domainA 中有一个页面index.html,通过iframe嵌套了domainB中的一个页面other.html 由于other.html页面在iframe中显示,而且其页面内容会动态的增加或减少,现在需要去掉iframe的滚动条 由于javascript同源策略的限制,无法进行跨域操作,使得问题比较棘手 参考了一下网上的做法,引入了一个代理页面,或者叫做中介 agent.html,属于domainA 然后

同域iframe的高度自适应

引子 父页面里控制子页面 子页面里控制父页面 一.引子 我们先看一个示例,有两个页面,1.html通过iframe嵌入2.html,两个页面都是同域的 1.html <!DOCTYPE html> <html>   <head>     <meta charset="utf-8" />     <title>1.html</title>   </head>   <body>      <

Bootstrap+iframe+sbadmin2高度自适应后台管理系统模板

基于Bootstrap框架的后台管理模板是越来越多了.以前说的有ace,sb admin2.Metronic等等.详见本文最后的参考资料. 其中,涉及到iframe的好像没有讲到,今天分享一下Bootstrap+iframe+sbadmin2高度自适应后台管理系统模板. 首先sb admin2 我就不介绍这个叫做傻逼的后台模板了,大家可以详见:[基于Bootstrap 的简约美观的后台管理系统模板UI:SB Admin 2] 先看效果图: 预览demo:Bootstrap+iframe后台管理系

jquery 操作iframe的几种方法

 这篇文章主要是对使用jquery操作iframe的几种方法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作   DOM方法: 父窗口操作IFRAME:window.frames["iframeSon"].document IFRAME操作父窗口: window.parent.document   jquery方法: 在父窗口中操作 选中IFRAME中的所有输入框

iframe窗口高度自适应的又一个巧妙实现思路

 这篇文章主要介绍了实现iframe窗口高度自适应的又一个巧妙思路,需要的朋友可以参考下 domainA 中有一个页面index.html,通过iframe嵌套了domainB中的一个页面other.html  由于other.html页面在iframe中显示,而且其页面内容会动态的增加或减少,现在需要去掉iframe的滚动条  由于javascript同源策略的限制,无法进行跨域操作,使得问题比较棘手  参考了一下网上的做法,引入了一个代理页面,或者叫做中介 agent.html,属于doma

跨域iframe的高度自适应

原文:跨域iframe的高度自适应   跨子域的iframe高度自适应 完全跨域的iframe高度自适应   同域的我们可以轻松的做到 1. 父页面通过iframe的contentDocument或document属性访问到文档对象,进而可以取得页面的高度,通过此高度值赋值给iframe tag. 2. 子页面可以通过parent访问到父页面里引入的iframe tag,进而设置其高度.   但跨域的情况则不允许对子页面或父页面的文档进行访问(返回undefined),所以我们要做的就是打通或间

js获取Html元素的实际宽度高度的方法_javascript技巧

第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}.这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度. 第二种情况就是宽和高是写在行内中,比如style="width:120px;",这中情况通过上述2个方法都能拿到宽度. 小结,因为id.offsetWidth和id.offsetHeight无视样式写在样式表还是行内,所以我们获取元素宽和高的时候最好用这2个属性.注意如果不是写在行内styl

iframe窗口高度自适应的实现方法_javascript技巧

domainA 中有一个页面index.html,通过iframe嵌套了domainB中的一个页面other.html由于other.html页面在iframe中显示,而且其页面内容会动态的增加或减少,现在需要去掉iframe的滚动条由于javascript同源策略的限制,无法进行跨域操作,使得问题比较棘手参考了一下网上的做法,引入了一个代理页面,或者叫做中介 agent.html,属于domainA然后,在domainB 中的other.html中,再使用iframe将agent.html进行

div高度自适应方法总结

看下面代码:    代码如下 复制代码 <style type="text/css">     .mytest     {         width:100px;         height:100px;         border:1px solid green;     } </style>     <div class="mytest">据英国<每日电讯报>11月30日报道,以色列安全内阁当天批准在约旦河西