Автоматическая высота Iframe - PullRequest
0 голосов
/ 24 декабря 2009

Пожалуйста, помогите мне,

Самый первый раз, когда высота iframe изменяется в соответствии с загруженной высотой, но когда содержимое iframe изменяется на большую высоту, чем текущая, и снова уменьшается, не принимая новое значение.

Например Высота загруженного фрейма = 1386 пикселей новое изменение содержимого iframe height = 3440px и снова измените на новую высоту = 3440px (но фактическая высота очень меньше, чем 1300px)

это то, что я пытался

$('iframe').load(function()
        {
            document.getElementById('loaderIFRAME').style.display = 'none';
            document.getElementById('myiframe').style.display = 'block';
            // Set inline style to equal the body height of the iframed content.

            if($.browser.msie){
                this.style.height = this.contentWindow.document.body.scrollHeight + 'px';
            }else{
                this.style.height = this.contentWindow.document.body.scrollHeight + 'px';
            }
        }

и другой тоже самое

function autoIframe(frameId) {
 try{
      frame = document.getElementById(frameId);
      innerDoc = (frame.contentDocument) ? frame.contentDocument : frame.contentWindow.document;
      objToResize = (frame.style) ? frame.style : frame;
      objToResize.height = innerDoc.body.scrollHeight + 10+ 'px';
      alert( objToResize.height);
   }
   catch(err){
      window.status = err.message;
   }
}

Как я могу решить это?

1 Ответ

2 голосов
/ 24 декабря 2009

Проблема в том, что если для высоты iframe установлено большое значение, его scrollHeight всегда равно большому значению, даже если реальная высота документа меньше. Вы можете попробовать, установив высоту iframe равной 1 пикселю, а затем прочитать свойство scrollHeight.

$('iframe').load(function(){
   try {
      var body = $(this).contents().find('body');
      this.height = 1;
      this.height = body.attr('scrollHeight');
   } catch(e){}
});

иногда лучше использовать свойства offsetHeight + offsetTop. Здесь вы можете найти мою старую реализацию этого скрипта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...