Проблема с настройкой высоты iframe при открытии как всплывающего окна с помощью ModalPopupextender

Я использую элемент управления ModalPopupextender Ajax для открытия страницы aspx в модальном всплывающем окне. Страница aspx открывается в iframe, как показано в приведенном ниже коде. Контент, который загружается в iframe, является динамическим, поэтому я не могу задать фиксированную высоту iframe. Я хочу, чтобы у меня была возможность регулировать высоту в соответствии с содержимым каждый раз, когда открывается всплывающее окно. У меня есть функция для изменения размера высоты iframe, и я успешно использую ее на других моих страницах, где iframe заполняется в самом окне, но не может регулировать высоту, когда iframe открывается в POPUP. Я уже безуспешно пробовал загружать окна, события загрузки iframe.

     <asp:ModalPopupExtender ID="ModalPopupExtender2" BackgroundCssClass="transparentBG"
        runat="server" CancelControlID="ButtonCancel" OkControlID="ButtonDone" 
        TargetControlID="btnAddNew" PopupControlID="DivAddWindow" Drag="true"  >
     </asp:ModalPopupExtender>
     <div class="popup_Buttons" style="display: none">
      <input id="ButtonDone" value="Done" type="button" />
      <input id="ButtonCancel" value="Cancel" type="button" />
     </div>
     <div id="DivAddWindow" style="display: none;">

     <iframe id="IframeEdit" scrolling="no" src="MasterPage.aspx"  width="700px">
    </iframe>
   </div>

Я был бы очень признателен, если бы кто-нибудь мог помочь мне решить эту проблему.


person user976508    schedule 03.05.2012    source источник


Ответы (1)


Попробуй это:

 <iframe id="IframeEdit" onload="iframeLoaded()" scrolling="yes" src="MasterPage.aspx"  width="700px">
</iframe>

следующая функция javascript получит высоту из содержимого iframe.

<script type="text/javascript">
function iframeLoaded() {
    var iFrameID = document.getElementById('IframeEdit');

    if (iFrameID) {
        iFrameID.height = "";
        iFrameID.height = iFrameID.contentWindow.document.body.scrollHeight + "px";
    }
}
</script>  

Проверял даже в ModalPopupextender, работает.

person Ashwini Verma    schedule 03.05.2012
comment
Спасибо за инициативу. Установка scrolling = yes действительно решила проблему с высотой, но в Firefox iframe показывает горизонтальную / вертикальную прокрутку. Может быть, мне нужно найти способ скрыть их через CSS. - person user976508; 03.05.2012