Skip to content

Instantly share code, notes, and snippets.

@kijtra
Created May 7, 2012 03:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kijtra/2625800 to your computer and use it in GitHub Desktop.
Save kijtra/2625800 to your computer and use it in GitHub Desktop.
[JavaScript] スマフォでアクセスした時にスマフォ用サイトへ移動を促すアラートを表示する&Cookieで一定時間は出さないようにする。jQuery等フレームワーク不要。
(function(){
var u='/redirect/path.html';//リダイレクト先のURL
var mes='スマートフォン用サイトに移動しますか?';//アラートのメッセージ
var cn='smartphone_redirect_canceled';//Cookie名
var cm=60;//Cookieのキャッシュ時間(分)
var cp='/';//Cookieのパス
var ua=navigator.userAgent;
//スマホページから来た場合は表示しない
if(document.referrer && document.referrer.indexOf(u)!=-1){
//Cookieに書き込む
var date = new Date();
date.setTime(date.getTime()+(cm*60*1000));
document.cookie =cn+'=1; expires='+date.toGMTString()+'; path='+cp;
}else if(ua.indexOf('iPod')>0 || (ua.indexOf('iPhone')>0 && ua.indexOf('iPad')==-1) || (ua.indexOf('Android')>0 && ua.indexOf('Mobile')>0)){
//Cookieがセットされているか調べる
var ca=document.cookie.split(';');
for(var i=0;i<ca.length;i++){
var c=ca[i];
while(c.charAt(0)==' '){
c=c.substring(1,c.length);
}
if(c.indexOf(cn)==0){
return null;
}
}
//アラートを出す
if(window.confirm(mes)){
location.href=u;
}else{
//キャンセルならCookieに書き込む
var date = new Date();
date.setTime(date.getTime()+(cm*60*1000));
document.cookie =cn+'=1; expires='+date.toGMTString()+'; path='+cp;
}
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment