0

モバイル サイトと通常のサイトがあります。モバイル デバイスでは、モバイル デバイスである通常の Web サイトを検出し、モバイル Web サイトにリダイレクトします。クエリ文字列 no_redirect=true を追加することで、モバイル Web サイトから通常の Web サイトに戻ることもできます。

これにより、JS はモバイル検出コードを再度実行しなくなります。

これはホームページ (モバイル検出) 用にのみ持っているため、通常の Web サイトの他のページに移動すると、QueryString はもう存在しません。ホームページに戻ると、再びモバイル サイトにリダイレクトされます (QueryString がないため、モバイル検出が開始されます)。

モバイル Web サイトから通常のサイトへのサンプル URL: http://www.mysite.com/default.aspx?no_redirect=true

設定/存在したら、すべてのページに QueryString no_redirect=true を追加する方法を探しています。これは、モバイル Web サイトから標準 Web サイトに戻ったときにのみ発生します。これにより、ホームページにアクセスするたびにモバイルから通常に切り替える必要がなくなります。

誰かがこれに対するアイデアや解決策を教えてください。

事前にThx

4

3 に答える 3

1

asp.netを使用しているので、IISが提供する機能を使用してみませんか?

IISで使用できるURL書き換えモジュールがあります。これは、この種の状況に最適です。

あなたがあなたの変数をURLに追加したいかどうか、それはあなた次第です、mut人々はURLをブックマークし、これらのブックマークも共有する傾向があるので、私はそれに対して強くお勧めします。誰かが最初に別の種類のデバイスで使用されるリンクを共有する可能性は非常に大きく、ユーザーエクスペリエンスの低下につながります。

あなたが直面している問題を解決するstackoverflowの質問がすでにあります。

「nomobile」Cookieを使用したモバイルのIISURL書き換えルール

ルールの処理は、要求がASP.NETパイプラインに渡される前にサーバー上で実行されます。つまり、ページを「最初に」ロードしてからリダイレクトする必要はありません。これは、現在提案しているソリューションとは正反対です。

リンクした質問を参照してください。本当にクエリ文字列を追加したい場合は、web.configでappendQueryStringプロパティをtrueに変更するだけです。

于 2013-02-15T06:37:53.667 に答える
1

迅速な返信ありがとうございます。しかし、私はそれをこのように機能させました。

たぶん、ホームページにモバイル検出しかないのはなぜだろうと思っている人もいるのではないでしょうか? これはレスポンシブ Web サイトであるためですが、3G での読み込みが非常に速いため、最初はモバイル サイトを表示したいと考えています。もちろん、誰かが別の URL を入力すると、すぐにレスポンシブ Web サイトが表示されます。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

If Request.QueryString("no_redirect") IsNot Nothing AndAlso Not String.IsNullOrEmpty(Request.QueryString("no_redirect").ToString()) Then
Dim cookie As New HttpCookie("no_redirect")
    cookie.Value = Request.QueryString("no_redirect").ToString()
    cookie.Expires = DateTime.Now.AddMinutes(10)
    Response.Cookies.Add(cookie)
Else
    If Request.Cookies("no_redirect") IsNot Nothing Then
        Response.Redirect("/default.aspx?no_redirect=true")
    End If
End If
End Sub
于 2013-02-14T23:07:40.373 に答える
0

すべてのリンクを変更しようとするのではなく、セッション変数を使用することをお勧めします。ただし、ここに役立つかもしれないいくつかのjqueryがあります

$(document).ready(function() {
    $('a').each(function(i,o) {
        var href = $(o).attr('href');
        if (href.indexOf('?') > 0) href = href + '&no_redirect=true';
        else href = href + '?no_redirect=true';
        $(o).attr('href', href);
    });
});

http://jsfiddle.net/cEKeK/

于 2013-02-14T22:46:20.637 に答える