3

私のウェブサイトは小さな画面ではまったく見栄えがよくないので、画面の幅が 800px 以下の場合にページのモバイル バージョンにリダイレクトする JS 関数を作成したいと考えています。

そのコードは次のとおりです。

if (screen.width <= 800) {
  document.location ="index_mobile.html";
};

コードが機能する場合、ブラウザー ウィンドウを幅 800 ピクセルに縮小すると、index_mobile.html が表示されるはずです。しかし、現在は表示されていません。誰が何が起こっているのか知っていますか?

http://jsfiddle.net/RZMmV/

4

2 に答える 2

2

モバイル ブラウザーは、実際のデバイスの解像度を報告したり使用したりしません。これは、基本的にインターネット上のすべての Web サイトが使用できなくなるためです。

彼らが行っているのは、デスクトップ PC の解像度に近い解像度を持つ「仮想画面」を作成し、ページにズームを実装することです。

実際のデバイスの解像度を知りたい場合は、デバイスで行われる自動スケーリングを無効にする必要があります。たとえば、iOS および Android デバイスの場合、これは次のように追加して実行できます。

<meta name="viewport"
      content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>

<head>あなたのページのセクションに。これにより、ページが低解像度のデバイスを処理するように設計されていることがブラウザーに通知され、仮想画面レイヤーが無効になります。

于 2012-11-02T18:16:43.253 に答える
0

screen.widthウィンドウではなくモニターの幅を返すため、ブラウザー ウィンドウを縮小して別の値を取得することはできません。window.outerWidthそのためには、または何かを使用する必要があります。

于 2012-11-02T18:16:50.350 に答える