【问题标题】:Setting dynamic height for <iframe> in Google Chrome and Safari [closed]在 Google Chrome 和 Safari 中为 <iframe> 设置动态高度 [关闭]
【发布时间】:2013-03-28 14:40:09
【问题描述】:

我正在使用 Spring MVC 框架开发一个 Web 应用程序,在我的一个模块中,我实现了一个 &lt;iframe&gt; 来显示用户帖子和 cmets。现在我的问题是&lt;iframe&gt; 的高度应该根据&lt;iframe&gt; 中的内容动态设置。为此,我正在使用以下 JavaScript。它在 Firefox 和 Internet Explorer 中运行良好,但在 Google Chrome 和 Safari 中运行良好。如何解决这个问题?

function sizeFrame() {
  jQuery("#myframe", top.document).css({ height: 0 });
                        var iframe=document.getElementById('myframe');
                var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;
                var the_height=0;
                 if (iframeWin.document.body) {
                 the_height = iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight;
                }
               jQuery("#myframe", top.document).css({ height: the_height }); 
              }

             </script>

【问题讨论】:

    标签: jquery google-chrome iframe browser safari


    【解决方案1】:

    将以下代码添加到您的 java 脚本函数中,以解决您的问题,

    var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
    var is_safari=navigator.userAgent.toLowerCase().indexOf('safari') > -1;
     if(is_chrome || is_safari)
    {
    jQuery("#myframe", top.document).css({ height: 0 }); 
    var myframe = jQuery("#myframe");var innerDoc = (myframe.get(0).contentDocument) ? myframe.get(0).contentDocument : myframe.get(0).contentWindow.document;
    var h;
    if(innerDoc.body.scrollHeight)
     h=innerDoc.body.scrollHeight+35;
    else
     h=innerDoc.documentElement.scrollHeight;
    jQuery("#myframe", top.document).css({ height: h  }); 
    }
    

    【讨论】:

    • 感谢您的解决方案,对我帮助很大
    猜你喜欢
    • 1970-01-01
    • 2018-06-30
    • 2016-10-07
    • 2016-01-12
    • 1970-01-01
    • 2011-10-13
    • 2019-11-18
    • 2012-10-24
    • 2011-03-04
    相关资源
    最近更新 更多