我正在Android中开发一个Web应用程序,我使用WebView来播放一些页面。以下是我的html代码,我编写了一个js函数来获取浏览器屏幕高度的高度。
<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,我按照你的建议找到了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>
答案 0 :(得分:1)
尝试将window.innerHeight
函数放在document.onready
或更高版本中,因为高度可能尚未在onload
初始化。