2

我确实有一个非常基本的设置:

//index.js with iFrame Resizer, included frame has contentWindow api loaded

$(document).ready(function() {
  $('#odbFrame').iFrameResize({
    resizeFrom: 'child',
    checkOrigin: 'false'
  });
});
.container-fluid {
     padding: 0 !important;
}

#odbFrame {
    border: 0;
    width: 100%;
    height: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- bootstrap -->
<div class="container-fluid">
    <iframe src="{$odbUrl|esc}" id="odbFrame"></iframe>
</div>
<script src="index.js"></script>

但是当它加载时,页面首先会正确调整大小,然后增长到无穷大。

这是日志:

[iFrameSizer][odbFrame] Parsed 1407 HTML elements  
[iFrameSizer][odbFrame] Element position calculated in 183ms  
[iFrameSizer][odbFrame] Event throttle increased to 366ms  
[iFrameSizer][odbFrame] Trigger event lock on  
[iFrameSizer][odbFrame] Sending message to host page  (odbFrame:1441:1853:mutationObserver)  
[iFrameSizer][Host page: odbFrame] Received  
[iFrameSizer]odbFrame:1441:1853:mutationObserver  
[iFrameSizer][Host page: odbFrame] Checking connection is from: <$odbUrl>  
[iFrameSizer][Host page: odbFrame] Checking height is in range 0-Infinity  
[iFrameSizer][Host page: odbFrame] Checking width is in range 0-Infinity  
[iFrameSizer][Host page: odbFrame] Requesting animation frame  
[iFrameSizer][Host page: odbFrame] IFrame (odbFrame) height set to 1441px  
[iFrameSizer][odbFrame] Trigger event cancelled: resize  
[iFrameSizer][odbFrame] Trigger event: mutationObserver: [object HTMLDivElement] childList  
[iFrameSizer][odbFrame] Trigger event lock off  
[iFrameSizer][odbFrame] --  

这是永远重复的(好吧,高度一直在增长)。临时解决方法是使用 maxHeight ,但不应该这样做。

我努力了:

  1. 所有的calculateHeightMethods
  2. 外部触发resize方法

两个都失败了!

在同一 URL 的其他页面(主机和子)上,情况并非如此!

4

2 回答 2

0

在阅读了这个Github 主题后,这是我修复我的方法:

最常见的原因是 CSS 将样式设置为比页面高,每次页面调整大小时,CSS 大小都会超过页面底部,然后我们又会绕过去。

我有

body{
    min-height:100vh;
}

我删除了它,它现在可以工作了!

于 2019-01-15T09:55:09.013 回答
0

问题是:使用绝对坐标放置页脚,导致计算错误。页脚已删除,现在可以使用

于 2019-01-25T15:38:00.987 回答