Я разрабатываю веб-приложение для Android и использую 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
Спасибо, Демоник, я следую твоему предложению и нахожу 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/