iframe高度自适应

方案一

参考文案http://blog.csdn.net/alex8046/article/details/51456131

<iframe src="http://www.fulibac.com" id="myiframe" scrolling="no" onload="changeFrameHeight()" frameborder="0"></iframe>
function changeFrameHeight(){
    var ifm= document.getElementById("myiframe"); 
    ifm.height=document.documentElement.clientHeight;
}
window.onresize=function(){  
     changeFrameHeight();  
} 

document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度

onresize 事件会在窗口或框架被调整大小时发生。(支持该事件的javascript对象为window)

直接将iframe的高度定义为浏览器可见区域高度,当浏览器可见高度发生改变时,执行js事件改变iframe高度。

 

方案二

参考文案http://caibaojian.com/iframe-adjust-content-height.html

iframe内容未知,高度可预测

这个时候,我们可以给它添加一个默认的CSS的min-height值,然后同时使用JavaScript改变高度。

 

function setIframeHeight(iframe) {
if (iframe) {
var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;
if (iframeWin.document.body) {
iframe.height = iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight;
}
}
};

window.onload = function () {
setIframeHeight(document.getElementById('external-frame'));
};

 

<iframe src="backtop.html" frameborder="0" scrolling="no" id="external-frame" onload="setIframeHeight(this)"></iframe>

contentWindow contentDocument 在本地访问浏览器无法获取值 提示拒绝访问

需要将其放入服务器内之后便能获取值

 

contentDocument
posted @ 2017-11-13 17:33  蚂蚁Zz  阅读(142)  评论(0编辑  收藏  举报