关于iframe在chrome自适应高度兼容性问题 您所在的位置:网站首页 谷歌浏览器兼容问题 关于iframe在chrome自适应高度兼容性问题

关于iframe在chrome自适应高度兼容性问题

2024-07-13 09:56| 来源: 网络整理| 查看: 265

首先了解两个概念,contentWindow和contentDecument,可以在子级iframe设置父级和孙级iframe高度。contentWindow兼容各个浏览器,可取得子窗口的window对象;contentDocument  Firefox支持,>ie8支持。可取得子窗口的document对象。

document.body有三个名词解释,clientHeight、offsetHeight和scrollHeight的解释,这里说的是document.body。如果是HTML控件,就会又不同。

clientHeight,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。

而offsetHeight和scrollHeight根据浏览器不同,定义有差别,但是一般有一个固定的公式,

关系公式:scrollHeight = offsetHeight+ scrollTop

复制代码   var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1];     var FFextraHeight=getFFVersion>=0.1? 16 : 0;     function dyniframe() {       var pTar = document.getElementById("test");       var height;       if (pTar && !window.opera) {         pTar.style.display = "block";         if (pTar.contentDocument && pTar.contentDocument.body.offsetHeight) {          pTar.height = pTar.contentDocument.body.scrollHeight;          height = pTar.contentDocument.body.scrollHeight;         }else if (pTar.Document && pTar.Document.body.scrollHeight) {           var hei = pTar.Document.body.scrollHeight;           height = hei;           if (hei > 500){             pTar.height = hei;           }           else{             pTar.height = 500;           }         }else if (pTar.contentWindow && pTar.contentWindow.outerHeight) {           pTar.height = pTar.contentWindow.outerHeight + FFextraHeight;         }       }       parent.dyniframe(height);     }  复制代码 下面是网上找的一个自诩是完美兼容的代码,如果你用谷歌浏览器看,需要配置个环境 如IIS,得在环境下运行才能看到效果。大部分人说不能完全兼容都是这个问题。

复制代码 function reinitIframe(){ var iframe = document.getElementById("frame_content"); try{ iframe.height = iframe.contentWindow.document.documentElement.scrollHeight; }catch (ex){} } window.setInterval("reinitIframe()", 200); 复制代码

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有