javascript 中iframe高度自适应(同域)
今天解决了iframe高度自适应的问题,不过这只是同域下的页面嵌入,以下是代码:
function SetCwinHeight(){ var iframeid=document.getElementById("frame"); //frame是iframe的id if (document.getElementById) { if (iframeid && !window.opera) { if (iframeid.contentdocument && iframeid.contentdocument.body.offsetHeight) { iframeid.height=iframeid.contentdocument.body.offsetHeight; }else if (iframeid.document && iframeid.document.body.scrollHeight) { iframeid.height=iframeid.document.body.scrollHeight; } } }
iframe嵌入页面时需要等待它完全加载完后才可以调用SetCwinHeight(),所以当修改iframe里的src值时,也需要等待修改的页面完全嵌入后才可以调用SetCwinHeight(),这样才有效果,那么该怎么放置SetCwinHeight(),我的解决方法是在iframe标签里直接调用,即这样写 <iframe onload="SetCwinHeight();"></iframe>,但是这样的的话会污染了html环境,可是在js中一般只用一次window.onload=function(){},如果使用多次,后面的会覆盖前面的,所以目前为止我能想到的解决方法就这一个