我确实有一个非常基本的设置:
//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 ,但不应该这样做。
我努力了:
- 所有的calculateHeightMethods
- 外部触发resize方法
两个都失败了!
在同一 URL 的其他页面(主机和子)上,情况并非如此!