2013-02-12 4 views
0

Обнаружив, как скрыть адресную строку из сообщения SO, мне нужно выполнить этот скрипт, чтобы получить высоту видового экрана. ПОСЛЕ того, что адресная строка прокручивается вне поля зрения.Веб-приложение Скрыть адресную строку при запуске слишком поздно

Но значения H и W возвращаются до того, как происходит прокрутка, хотя я вызываю функцию getViewPortSize() через 1 секунду позже. Как только щель щелкает OK, адресная строка прокручивается!

Кто-нибудь может помочь мне заставить эту работу работать как ожидалось?

$(document).ready(function() { 
     window.addEventListener("load", function() { if (!window.pageYOffset) { hideAddressBar(); } }); 
     window.addEventListener("orientationchange", hideAddressBar); 

     setTimeout(getViewPortSize(), 1000); 

     function getViewPortSize() { 
      var viewportWidth = $(window).width(); 
      var viewportHeight = $(window).height(); 

      alert('viewportHeight: ' + viewportHeight); 
     } 
     function hideAddressBar() { 
      if (!window.location.hash) { 
       if (document.height < window.outerHeight) { 
        document.body.style.height = (window.outerHeight + 50) + 'px'; 
       } 

       setTimeout(function() { window.scrollTo(0, 1); }, 0); 
      } 
     } 
    }); 
+0

Конечно, взломать было бы добавить 25 пикселей (Android) на высоту видового экрана (и любую высоту для iPhone), но это было бы просто ошибочным решением. –

ответ

0

Найдено этот ответ:

Заменено SetTimeout (getViewPortSize(), 1000);

С:

$(window).scroll(function() { 
    getViewPortSize() 
}); 

Так что функция не запускается, пока свиток не произошло.

Смежные вопросы