js 跨域IFRAME自适应高度例子

需求: A页面使用iframe标签跨域包含B页面
问题: A/B页面不同域,A页面无法获取并自适应B页面高度
方案: 增加C页面,A/C页面同域,A包含B,B包含C,B通知C高度,C调整A页面iframe高度~
 
跨域IFRAME自适应高度
 
A页面:

<iframe id="iframe_a" src="B页面url" width="100%" style="border:0"></iframe>

B页面:

<div style="background:#9AC86C;height:1000px"></div>
<iframe id="iframe_b" src="C页面url" style="display:none"></iframe>

<script>
    //获取本页面高度
    var height_b = Math.max(document.body.scrollHeight, document.body.clientHeight);
    //在src属性中增加高度信息
    var iframe_b = document.getElementById('iframe_b');
    iframe_b.src = iframe_b.src + '#' + height_b;
</script>

C页面:

<script>
    //获取B页面高度
    var height_b = window.location.hash.split('#')[1] + 'px';
    //获取A页面iframe对象
    var iframe_a = parent.parent.document.getElementById('iframe_a');
    //调整A页面iframe高度
    iframe_a.height = height_b;
</script>

时间: 2024-10-26 06:13:03

js 跨域IFRAME自适应高度例子的相关文章

跨域iframe的高度自适应

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

JQuery实现跨域IFrame自动高度方案

由于项目中引入了JQuery,不方便再引用YUI.所以依照 Session variables without cookies 原理 ,直接用JQuery实现如下: 场景:主页面 (emo_windowname.html)一个IFrame(framePreview), 在页面加载或者单击按钮时,让IFrame加载一个页面(http://...../正文.html). 条件:正 文.html 预告加入脚本,或者使用HttpModule加入脚本: $(function(){ window.name

js跨域问题之跨域iframe自适应大小实现代码_javascript技巧

复制代码 代码如下: <body onload="javascript: setHeight();"> <script> function setHeight(){ var dHeight = document.documentElement.scrollHeight; var t = document.createElement("div"); t.innerHTML = '<iframe id="kxiframeagent

利用location.hash实现跨域iframe自适应_javascript技巧

页面域关系: 主页面a.html所属域A:www.jb51.net 被iframe的页面b.html所属域B:www.baidu.com,假设地址:http://www.baidu.com/b.html 实现效果: A域名下的页面a.html中通过iframe嵌入B域名下的页面b.html,由于b.html的宽度和高度是不可预知而且会变化的,所以需要a.html中的iframe自适应大小. 问题本质: js对跨域iframe访问问题,因为要控制a.html中iframe的高度和宽度就必须首先读取

javascript控制iframe自适应高度例子

iframe有一个烦人的问题,就是在没有设置高度的情况下,被嵌套区会显示一大片空白,有时候设置了高度也不行,后来用JavaScript轻松解决了iframe自适应高度的问题,下面把经验和具体方法分享出来. 为了演示方便,这里需要2个页面,一个是被iframe的页,一个是母页面,先来看母页面,也就是有iframe代码的页面:  代码如下 复制代码 <html> <head> <title>iframe自适应加载的网页高度</title> </head&g

同域iframe的高度自适应

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

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

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

跨域 iframe 父页面的js向子页面添加按钮 求大神指导啊!!

问题描述 跨域 iframe 父页面的js向子页面添加按钮 求大神指导啊!! 如题 跨域 iframe 父页面的js向子页面添加按钮 求大神指导啊!! 跨域 iframe 父页面的js向子页面添加按钮 求大神指导啊!! 跨域 iframe 父页面的js向子页面添加按钮 求大神指导啊!!

JS实现iframe自适应高度的方法(兼容IE与FireFox)_javascript技巧

本文实例讲述了JS实现iframe自适应高度的方法.分享给大家供大家参考,具体如下: 之前一直被iframe自适应高度的问题困扰,很多JS代码在FF里面似乎就变成哑巴了.后来下面这段代码终于被我从万千号称兼容FF的代码堆中翻了出来.我已经用过了,真的好用.尤其是对于我这样的JS水平较低(真不好意思)的人来说,这段代码简单易懂,方便修改,只要把下面的代码复制粘贴到iframe所在页面的<body>标签里面,并且修改一下ID名就行了(注意,要修改的地方有两个,位置在代码中有说明). 向原创这段代码