1

お問い合わせフォームと領収書ページを備えたモバイル向けに最適化された単一のページを作成中です。私たちの CMS には、同じコンテンツの「デスクトップ」ページがありますが、CSS、リダイレクトなどに関してデスクトップ ページを編集することはできません。

mobile-page は、モバイル専用キャンペーンに使用されます。ただし、誰かがデスクトップまたはタブレットからページにアクセスした場合は、代わりにデスクトップ バージョンにリダイレクトされることを確認したいと思います。

私はこの種のスクリプトを見てきました:

<script type="text/javascript">
<!--
if (screen.width <= 699) {
document.location = "mobile.html";
}
//-->
</script> 

しかし、最近のモバイルの解像度ははるかに高くなっているため、「699 以上の場合はデスクトップ サイトにリダイレクトする」という逆の処理を行っても、おそらくうまくいかないのではないでしょうか。Samsung Galaxy s 3 はほぼデスクトップの解像度を持っています... これは 2 つの別々のサイトであるため (古い厳格な CMS のため)、メディア クエリを使用することは実際にはオプションではありません。では、モバイル以外のユーザーやタブレット ユーザーをリダイレクトするにはどうすればよいでしょうか。どの携帯電話のユーザーもモバイル ページのページにとどまります。

注意してください - 当社のサーバーは PHP を実行していないため、サーバー側のファイルを変更することはできません。JavaScriptっぽいものが必要だと思います。

4

3 に答える 3

2

ここに私が使用する素敵なスニペットがあります:

var isMobile = {
    Android: function() {
        return navigator.userAgent.match(/Android/i) ? true : false;
    },
    BlackBerry: function() {
        return navigator.userAgent.match(/BlackBerry/i) ? true : false;
    },
    iOS: function() {
        return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false;
    },
    Windows: function() {
        return navigator.userAgent.match(/IEMobile/i) ? true : false;
    },
    any: function() {
        return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows());
    }
};

if (isMobile.any()) {
    window.location = 'http://m.example.org';
}
于 2012-09-03T10:39:11.273 に答える
0
// To Check if Mobile browser,then redirect to mobile version website otherwise open web url.
    //alert(navigator.userAgent); 
        // userAgent gives all info related to browser,os,device info

     var index = navigator.appVersion.indexOf("Mobile");   

    if (index>0) 
    { window.location.href='[mobile page url]'; } 
于 2012-09-03T10:50:54.983 に答える
0

多くの人が「モバイル デバイス」の検出を求めている理由がよくわかりません。フロントエンドの開発者として、ブラウザー ベンダーを探しているのと同じくらいモバイル デバイスと呼ばれるデバイスに関心を持つべきではありません。つまり、まったくそうではありません。

代わりに機能をチェックしないのはなぜですか? 現在の環境に適応する、動的で進歩的な拡張 Web アプリを作成します。それがタッチイベントまたは標準イベント、画面解像度などを意味するかどうかは関係ありません。

ただし、ブラウザまたはデバイスのチェックを続ける場合でも、最善の方法userAgentはオブジェクトにある文字列ですnavigator。@MihaiIorga の回答を参照してください。

ただし、ブラウザーやデバイス用のまったく異なるアプリ/プロジェクトでは、これらの「分離」を避けるように努める必要があります。多かれ少なかれ「巨大な」アプリケーションまたはサイトが、別のデバイスで非常に短時間で精査する必要がある場合、その点は理解できますが、長期的には、その方法ではあまり効果がありません。今後、さらに多くのデバイス / ブラウザー (バージョン) / {考えられないこと} がリリースされる予定です。

于 2012-09-03T10:42:35.677 に答える