5

私はモバイル ブラウザを検出するスクリプトを作成しました。それが true の場合、JS 関数getwidthが呼び出され、デバイスの画面幅に基づいて訪問者を特定の URL にリダイレクトします。screen.width画面幅を検出するために、基本的なjs検出方法を使用しました

私が直面している問題は、さまざまなブラウザーでさまざまな画面幅が返されることです。たとえば、実際の画面幅が 800 PX のタブレット (Android 4.0.3) を持っていて、デフォルトのブラウザーでスクリプトを実行すると、戻ります正確な画面幅800pxですが、異なるブラウザーで開くと、UC ブラウザーが 740 PX () を返すように異なる幅をISSUE 2: also when onload function i tried to return screen width on UC browser then it returns screen width as 0px and after page load when i call the same function again then it returns width=740px返します。Opera Mini でスクリプトを実行すると、幅が 441 PX として返されます。

ハンドヘルド/スマート デバイスの画面幅を検出する最も効率的な方法を教えてください。そのため、画面幅に基づいてリダイレクトを完全に行うことができます。

テストする URL: http://radiations3.aiksite.com/home.html

ありがとう、

4

2 に答える 2

8

うーん、Javascript を使用するのではなく、CSS を使用する必要があるように思えます。メディアクエリを調べましたか? これは、画面の幅を検出し、それに応じて異なるスタイルを提供する最もクロスブラウザーな方法です。

スタイルを変更するのではなく、あなたの言うとおりにリダイレクトする (必要な場合) 場合は、次のコードをお勧めします ( Andy Langtonに代わって):

var w=window,d=document,e=d.documentElement,g=d.getElementsByTagName('body')[0],x=w.innerWidth||e.clientWidth||g.clientWidth,y=w.innerHeight||e.clientHeight||g.clientHeight;

これは、それぞれ幅と高さであるxとの 2 つの変数を作成する省略表現です。yおそらく、これはあなたが探しているものに近いかもしれませんが、最初にメディア クエリを調べて、探していることが CSS では実行できないことを確認することをお勧めします。Javascript がすべてのブラウザーで有効になっているという保証はありません。

于 2012-08-12T00:51:17.590 に答える
1

jQueryを使用してそれを試しましたか

$(window).width();
$(window).height();

これらを使って困ったことはありません。

于 2012-08-18T18:24:56.603 に答える