3

最初に: はい、Google で検索しました。Google の検索結果のダークサイドにも入りました。

Android Nexus S と Android 2.3.5 のデフォルト ブラウザーを使用すると、window.innerHeight が間違った値を報告します。

window.height (452 である必要があります) からキーボードの高さ (207) を引いた値が報告されます。これは特に、リロード (アドレスバーに触れて [go] をクリック) 後に発生します。

このコード例は、間違った結果を返します。

$(function() {
    alert(window.innerHeight); // 245

    setTimeout(function() {
        alert(window.innerHeight); // 245
    }, 1000);
});

以下はすべて間違った結果を返します。

$(body).height(); // (way) too high
screen.height; // 245
window.outerHeight; // 600+
document.body.offsetHeight; //646
screen.height / window.devicePixelRatio - window.screenTop; //125.xxx;

window.onResize イベントはトリガーされませんが、2 回回転すると高さの問題が修正されます (ただし、クライアントにそうするように指示することはできません)。

ビューポートを少しいじりました。これは私の現在のものです:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1, user-scalable=no target-densityDpi=160" />

Android と window.innerHeight の聖杯が利用できる (そして無料で使用できる) インターネットのニッチなコーナーを逃したことを願っています ;)

したがって、解決策、または過去に同様のものを修正したものを知っている場合は、共有してください:)

4

1 に答える 1

0

私はあなたとまったく同じ問題を見ています。修正はまったく同じです-2回ローテーションします。

それ以外 - 別の Android バージョンを待ちます。

于 2013-04-29T22:27:01.363 に答える