2012-03-08 6 views
2

Android에서 웹 앱을 개발 중이며 WebView를 사용하여 일부 페이지를 재생합니다. 다음은 내 HTML 코드이며 브라우저 화면 높이의 높이를 가져 오는 js 함수를 작성합니다.WebView에서 js 함수 window.innerHeight는 단지 0을 반환합니까?

<html> 
<head> 
<script> 
window.onload=function(){ 
    alert(window.innerHeight); 
} 
</script> 
</head> 
<body style="background:black;"> 
</body> 
</html> 

위의 코드를 Defy 480 * 800 모바일 장치에서 테스트하고 WebView에서 0과 때로는 다른 숫자를 반환합니다. 하지만 브라우저에서는 제대로 작동합니다.

그래서 WebView에서 사용 가능한 화면 높이를 알아야하는 것이 있는지 궁금합니다.


갱신 : 2012년 3월 13일

감사 Demonick, 나는 나는 윈도우의 높이를 얻기 위해 설문 조사를 만드는에서는 setTimeout을 사용하여 귀하의 제안을 따르고 lazyload.js을 찾을 수 있습니다.

다른 사람들에게 도움이되기를 바랍니다.

<script> 
//poll numbers 
var pollCount=0; 

//get the window Height 
var pollWindowHeight=function(){ 
    //poll the window innerHeight 10s 
    if(window.innerHeight==0){ 
     pollCount+=1; 

     if(pollCount<200) { 
      setTimeout(pollWindowHeight,50); 
     }else{ 
      //just stop polling or you can do some others 
     } 
    }else{ 
     //use the window.innerHeight to do something... 
    } 
} 
document.addEventListener("DOMContentLoaded",pollWindowHeight, false); 
</script> 

참조 : 높이가 아직 onload에서 초기화되지 않은 수 있기 때문에 https://github.com/rgrove/lazyload/

답변

1

시도 대신 나중에 document.onreadywindow.innerHeight 기능을 넣어 또는합니다.