2

Dynamics CRM (2011 オンプレミス) に iFrame があり、これにはトランザクション明細 (請求書明細など) をロードする aspx ファイルが含まれています。明細項目の数量は、1 から 8,000 まで非常に多様です。垂直スクロール バーが表示されないように、iFrame の高さを調整する必要があります。どうすればこれを達成できますか?現在、この JS 関数を使用していますが、非常に不正確です。

function setIframeHeight() {
        var rowcount = getRowCount();
        var multiplier = 19;

        if (rowcount < 25) {
            multiplier = 13;
        }
        else if (rowcount > 50) {
            multiplier = 23;
        }
        else if (rowcount > 150) {
            multiplier = 32;
        }
 window.parent.parent.frames[0].document.getElementById('IFRAME_TransactionProduct_RA_d').parentNode.height = rowcount * multiplier;
    }
4

1 に答える 1

3

jquery offset()。top関数を使用できます。

http://api.jquery.com/offset/

ページの最も低いコントロールの上部を取得してページの高さを決定するには、次のようにします。

function setIframeHeight() {
    var element = $('#idOfLowestControlOnPage');

   window.parent.parent.frames[0].document.getElementById('IFRAME_TransactionProduct_RA_d').parentNode.height = element.offset().top + element.height();
}
于 2013-03-18T22:38:52.930 に答える