1

フル サイトのすべてのページからこのスクリプトを呼び出して、モバイル ユーザーをモバイル サイトの URL にリダイレクトしています。問題は、誰かが (モバイル サイトから) リンクをクリックして完全なサイトを表示するときに発生します...リダイレクトにより、ユーザーはモバイル サイトに戻されます。

<script type="text/javascript">
<!--
if (screen.width <= 700) {
window.location = "http://domain.com";
}
//-->
</script>

ユーザーがモバイル サイトの URL からアクセスしている場合にリダイレクトを許可しないように、この JS コードに追加できるものはありますか? 私の場合はJavaScriptのみを使用したいので、誰かがJSソリューションを持っている場合; それが私が探しているものです。ありがとう。

4

2 に答える 2

1

MDNのCookieコードを使用します:https ://developer.mozilla.org/en-US/docs/DOM/document.cookie

リンクをクリックすると。クッキーを設定する

docCookies.setItem("isMobile","true");

リダイレクトを確認するときは、Cookieを読んでください

if (!docCookies.getItem("isMobile"))
于 2013-02-19T20:28:38.367 に答える
1

これはある意味で、ユーザーの選択を 100 日間記憶します。 http://www.w3schools.com/js/js_cookies.asp

私が提供したリンクの関数を使用してください:そして、これを次の場合に変更します。

<script type="text/javascript">
<!--
if (screen.width <= 700 && getCookie("mobileRedirected")!="true"){
window.location = "http://domain.com";
}
//-->
</script>

そのページに戻るリンクで、次のことを行います。

<a href="#" onclick="setCookie('mobileRedirected','true',100);document.location='index.html';">LINK</a>

次にユーザーがインデックスにアクセスすると、mobile.html から離れた場所をクリックしたことがわかります。

つまり、ユーザーがサイトを選択できるようにしたい場合は、そうでない場合 (モバイルを 1 回だけ表示する)、次のようにすることができます。

   <script type="text/javascript">
    <!--
    if (screen.width <= 700 && getCookie("mobileRedirected")!="true"){
setCookie('mobileRedirected','true',100);
    window.location = "http://domain.com";
    }
    //-->
    </script>

そして、リンクコードをまとめてスキップします

上記のコードの完全な動作例

   <script type="text/javascript">
   function setCookie(c_name,value,exdays){
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
function getCookie(c_name){
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++){
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==c_name)    {
    return unescape(y);
    }
  }
}
    if (screen.width <= 700 && getCookie("mobileRedirected")!="true"){
        setCookie('mobileRedirected','true',100);
        window.location = "http://google.com";
    }
    </script>

小さなブラウザウィンドウもリダイレクトしたい場合は、window.innerWidth も使用できます。作業例のリンク: http://allanthya.net/cookietest.php

于 2013-02-19T21:05:12.050 に答える