私は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>
私の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>
参考:https://github.com/rgrove/lazyload/