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/