2017-09-29 14 views
0

コード化された解決策を探しているわけではありませんが、これまでに誰かがこの問題に遭遇しているかどうか不思議で、トラブルシューティングのヒントをスローすることができます。私は実際にこのバグに悩まされていました。なぜなら私はローカルではなく生産でしか再現できないからです。Iframe - offsetHeightが大きすぎます

親コンテナに基づいて子コンテンツのサイズを変更する命令に依存するiframeがあります。私はこの属性ディレクティブをアプリケーションの最も外側のdivに貼り付け、その要素の高さをつかんで親に送ります。次に、その要素の変更を監視します。

問題:現場ではうまくいきましたが、実稼働サイトに展開すると、要素から取得するoffsetHeightが大きすぎます(2,000px程度になると6,000pxなど)。そして、私がテストしているこのサイトだけではありません - この問題は、いくつかのサイトで発生します。

この問題は、ページの更新時にのみ発生することに気付きました。実際、アプリケーションのリンクをクリックすると、ページのサイズが正しく変更され、戻るボタンを押すと正しく再サイズされます。しかし、初めてホームページを読み込んだり、ページを更新したりすると、要素のoffsetHeightが大きくなります。

return { 
    link: function(scope, elem, attrs) { 
    if (webPluginCommunicator.isInIframe()) { 
     var lastHeight; 
     var checkHeight = function() { 
     if (lastHeight !== elem.prop('offsetHeight')) { 
      lastHeight = elem.prop('offsetHeight'); 
      webPluginCommunicator.updateIframeHeight(false, lastHeight); 
     } 
     $timeout(checkHeight,150); 
     }; 
     checkHeight(); 
    } 
    } 
}; 

そして、ここではHTMLは次のようになります:私はoffsetHeightや高さの行動に関するいくつかの重要な事実を欠けているように私は感じ

<div class="body-grid" id="wrapper" element-height-change > 

ここ

ディレクティブは次のようになります。ページ読み込みの計算。どんな洞察にも感謝!

答えて

0

だから!ここでの答えは、誰もが思っていた場合には、私の包括DIVの身体グリッドクラスの

min-height: 100vh; 

があったです。当然のことながら、フレームが内部コンテンツのサイズに達するまで連続的にサイズ変更される高さ指示を実際に混乱させます。

なぜこれがローカルでは再現されないのかまだ分かりませんが、確かに修正されてうれしいです。

関連する問題