コード化された解決策を探しているわけではありませんが、これまでに誰かがこの問題に遭遇しているかどうか不思議で、トラブルシューティングのヒントをスローすることができます。私は実際にこのバグに悩まされていました。なぜなら私はローカルではなく生産でしか再現できないからです。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 >
ここ
ディレクティブは次のようになります。ページ読み込みの計算。どんな洞察にも感謝!