zoukankan      html  css  js  c++  java
  • JS 中根据iframe子页面自动iframe高度

     注意为使页面有更好的兼容性,在使用以下代码前,请将aspx页中头部的<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">删除,至于居中情况结合<center> …… </center>标签来完成

    在实际的项目进行中,很多地方可能由于历史原因不得不去使用iframe,包括目前正火热的应用开发也是如此。

    随之而来的就是在实际使用iframe中,会遇到iframe高度的问题,由于被嵌套的页面长度不固定而显示出来的滚动条,不仅影响美观,还会对用户操作带来不便。于是自动调整iframe的高度就成为本文的重点。

    采用JavaScript来控制iframe元素的高度是iframe高度自适应的关键,同时由于JavaScript对不同域名下权限的控制,引发出同域、跨域两种情况。

    同域时Iframe高度自适应
    下面的代码兼容IE/Firefox浏览器,控制id为“iframeid”的iframe的高度,通过JavaScript取得被嵌套页面最终高度,然后在主页面进行设置来实现。

    代码如下,可复制。另外,请注意此解决方案仅供同域名下使用。

    <script type="text/javascript"> 
      function SetCwinHeight(){ 
       var iframeid=document.getElementById("iframeid"); //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; 
         } 
        } 
       } 
      } 
     </script> 
     <iframe width="100%" id="iframeid" onload="Javascript:SetCwinHeight()" height="1" frameborder="0" src="kimi.php"></iframe> 


    代码来自http://www.ccvita.com/376.html

    方法2

        在网页<body>标签之前插入以下代码:

    <script language="javascript">
    function turnHeight(iframe)  
    {  
        var frm = document.getElementById(iframe);  
        var subWeb = document.frames ? document.frames[iframe].document : frm.contentDocument;  
        if(frm != null && subWeb != null)   
        { frm.height = subWeb.body.scrollHeight + 20;}  
    }
    </script>

        调用代码如下:

    <IFRAME id=iframe1 src="/main/sf.php" frameBorder=0 width="986" scrolling=no onload="turnHeight('iframe1');" height="100%"></IFRAME>

        这样就能解决火狐iframe自适应高度的问题,而且兼容IE。

        注意,iframe页面中的元素,不能使用float属性和display属性,否则在火狐中获取到的iframe高度将为0,导致自适应高度失败。

  • 相关阅读:
    【MySQL】(三)文件
    【MySQL】(二)InnoDB存储引擎
    Linux Shell脚本编程-信号捕获
    Linux Shell脚本编程-数组和字符串处理
    Linux Shell脚本编程-函数
    Linux Shell脚本编程-语句控制
    Linux Shell脚本编程-基础2
    Linux Shell脚本编程-基础1
    Awk
    Sed
  • 原文地址:https://www.cnblogs.com/yingger/p/iframe.html
Copyright © 2011-2022 走看看