2013-03-18 2 views
2

У меня есть iFrame в Dynamics CRM (2011 по положению), который содержит файл aspx, который загружает позиции транзакции (например, позиция счета). Количество позиций сильно варьируется от 1 до 8 000. Мне нужно настроить высоту iFrame, чтобы она не показывала вертикальные полосы прокрутки. Как я могу это достичь? Сейчас я использую эту JS функцию, но это очень неточно:Определить высоту iFrame

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; 
    } 

ответ

3

Вы можете использовать JQuery смещение() верх функции:.

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(); 
} 
Смежные вопросы