2012-03-08 5 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> 

私の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/

答えて

1

高さはまだonloadに初期化されていない可能性があるため、代わりに後でdocument.onreadywindow.innerHeight機能を入れたりしてみてください。

関連する問題