深入解析contentWindow, contentDocument
人气:0生活永远是一个大染缸,一块白布下去,黑布出来,一块黑布下去,一块七色布出来。
contentWindow 兼容各个浏览器,可取得子窗口的 window 对象。
contentDocument Firefox 支持,> ie8 的ie支持。可取得子窗口的 document 对象。
在子级iframe设置 父级 iframe ,或 孙级 iframe 高度。
function showIframeH(){ var parentWin = parent.document.getElementById("test"); if(!parentWin) return false; var sub = parentWin.contentWindow.document.getElementById("test2"); if(!sub) return false; var thirdHeight = sub.contentWindow.document.body.offsetHeight; //第三层 body 对象 sub.height = thirdHeight; //设置第二层 iframe 的高度 var secondHeight = x.contentWindow.document.body.offsetHeight; //第二层 body 对象 x.height = secondHeight; //设置第一层 iframe 的高度 //alert(secondHeight); //alert('body: ' + x.contentDocument.body.offsetHeight + ' div:' + thirdHeight); }
下面附一个实例,因为2345的推广,很多导航站都将网址直接换成2345的推广页面了,那就是当前域名下获取2345中的宽度,然后通过js设置iframe内容的高度,这样看起来是一个整体,核心内容如下
iframe
<body>
<iframe id="mainFrame" onload="mainFrameLoaded(this)" scrolling="no" src="https://www.2345.com/"></iframe>
js代码
<script> function mainFrameLoaded(t) { /https://img.qb5200.com/download-x/debugger; //alert(t.contentWindow.document.body.offsetHeight); t.style.height = t.contentWindow.document.body.offsetHeight + 'px'; } </script>
记住js写在前面,iframe在后面,通过onload加载的时候就触发,完美融合。
加载全部内容