2012-03-08 16 views
2

我正在開發Android中的Web應用程序,並使用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> 

我測試上述代碼在我違抗480×800的移動設備和web視圖,它只是返回0,有時還有其它號碼。但在瀏覽器中,它的工作原理正確。

所以我想知道是否有什麼我應該知道在WebView中獲得可用的屏幕高度?


更新:2012年3月13日

感謝Demonick,我按照你的建議,並找到lazyload.js,我使用的setTimeout做一個民意調查,以獲取窗口的高度。

希望它可以幫助別人。

<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> 

參考:https://github.com/rgrove/lazyload/

回答

1

嘗試把window.innerHeight功能document.onready或更高版本代替,因爲身高可能沒上過onload初始化呢。