スマートデバイスのユーザーエージェントによるリダイレクトとは?

このQ&Aのポイント
  • スマートデバイスのユーザーエージェントによるリダイレクトとは、ユーザーの端末情報(例:iPhone、iPod、Android)を判別し、条件に応じて異なるページに自動的に転送する仕組みのことを指します。
  • 具体的には、この質問のコードでは、JavaScriptを使用してユーザーエージェント情報を取得し、iPhone、iPod、Androidのいずれかを含む場合には、「sp/」というディレクトリにリダイレクトする処理が行われます。
  • このようにして、ユーザーエージェントに応じて適切なページに転送することで、スマートデバイスの利用環境に最適化されたコンテンツを提供することができます。
回答を見る
  • ベストアンサー

これはどういう意味でしょうか?

<script type="text/javascript"> $(function(){ var agent = navigator.userAgent; var redirectPass = 'sp/'; if(agent.search(/iPhone/) != -1 || agent.search(/iPod/) != -1 || agent.search(/Android/) != -1){ location.href = redirectPass; } }); </script> これはどういう意味でしょうか? アイフォンとアイパッドとアンドロイドなら 違うページに移動させるよ という意味ですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • 4017B
  • ベストアンサー率73% (1306/1777)
回答No.1

ハイその通りですね。 var agent = navigator.userAgent; ←アクセスして来たブラウザ情報を取得. var redirectPass = 'sp/'; ←転送先のURLを指定. 変数.search(/文字列X/) ←変数(文字列)の中に指定した文字列Xが含まれるか検索. search関数は文字列内を先頭から検索し、指定文字列が発見された時点のオフセット数を返します。もし見付から無かった場合は "-1" を返します。最も簡単なブラウザ判別関数ですね。 何か豪勢にjQueryを使ってますが、関数内でjQuery的な処理は一切行ってないので、謎のコードですね(笑)。

pekoqyxalz
質問者

お礼

回答頂きありがとうございました。

関連するQ&A

  • UAによるリダイレクト

    スマートフォンからのアクセスを他のページに飛ばすために どうにか方法がないかと思って、いろいろ調べて勉強しております。 そこで以下のような記述でできることが分かったのですが、 javascriptなどについて詳しくないため、-1や0の意味が分かりません。 -1、0はどういう意味なのでしょうか? <script type="text/javascript"> if (document.referrer.indexOf('muay-thai-pck.com') == -1 && ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0)) { location.href = 'url'; } </script>

  • javascriptでスマートフォン・PC分岐

    PC用のサイトとスマートフォン用のサイトをそれぞれ作り、アクセスをjavascriptで振り分けたいと考えています。 PC用とスマートフォン用のURLはあいだに"i"をはさむ違いだけです。 http://www.hoge/cate1/post_001.html http://www.hoge/i/cate1/post_001.html いろいろ調べた結果、トップページは下記でうまく行きました。 <script type="text/javascript"> if ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0) { location.href = '/i/'; } </script> 問題は個別ページがうまく行きません。自分なりに調べて下記のように書きました。 <script type="text/javascript"> if ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0) { location.href = '/i/location.pathname'; } </script> ところがこれではhttp://www.hoge/i/location.pathnameに行ってしまいダメです。 なぜダメなのでしょうか? この場合、どのように記述すれば良いか教えてください。 PHPとCGIとかはさっぱり判らないのでその選択肢はありません。 よろしくお願いします。

  • PCのHPサイトから自動でスマホに対応について

    初心者なんですが、ホームページを作っている途中です。 パソコンで見る様にデザインしてるのでスマートフォンで見ると見にくくて困っています。 そこで、スマートフォンに自動切り替えのタグを使い、別ページを作ることにしました。 タグで以下のようなものを使用しています。 ただ、相手に選択できるようになってますので、選択なしの強制で変換させる方法はありますでしょうか。 ぜひ知ってる方がいたらよろしくお願いします。 <div class="Mobirth_Delete"> <script type="text/javascript"> function windowAddEventListener(callback) { if (window.addEventListener) { window.addEventListener('load', callback, false); } else if (document.attachEvent) { window.attachEvent('onload', callback); } } windowAddEventListener(function() { var agent = navigator.userAgent; if (agent.search(/iPhone/) != -1 || agent.search(/iPod/) != -1 || agent.search(/Mobile/) != -1 || agent.search(/Android/) != -1) { if(confirm('スマートフォン用のサイト表示しますか?\n(キャンセルの場合はPCサイトを表示します。)')) { location.href = '●●●●' + location.pathname; } } }); </script> </div>

  • スマートフォンサイトへのリダイレクト

    javascriptでスマートフォンサイトへのリダイレクトを行いたいです。 こちらを参考にしましたが、うまく動作しません。 参考サイト http://helog.jp/hp/smartphone/1095/ ---------------------------------------------------------------- <script type="text/javascript"> var agent = navigator.userAgent; if(agent.indexOf('Linux; U; Android ') != -1 || agent.indexOf('iPhone; U') != -1 || agent.indexOf('iPad; U') != -1){ location.href = '/smartphone/'; } </script> ---------------------------------------------------------------- ちなみに私のサイト構成は以下のとおりです。 index.html←ここのheadに上記javascriptを書きました。 smartphone/index.html←上のindexにアクセスされたときに、ここに飛ばせたい。 詳しい方がいましたらよろしくお願いします。

  • userAgent

    userAgentでプラットフォーム別に表示するサイトを分岐する場合 <script type="text/javascript"> <!-- var is_iphone=navigator.userAgent.indexOf("iPhone", 0); var is_ipod=navigator.userAgent.indexOf("iPod", 0); var is_android=navigator.userAgent.indexOf("Android", 0); if((is_iphone & is_ipod) > -1){ window.location = "sp/"; }else{} if(is_android > -1){ window.location = "sp/"; }else{} // --> としたら、ガラケーやipodではないタブレットは、どれと認識されるのでしょうか? タブレットはAndroidになるのでしょうか?

  • PC用のサイトとスマートフォン用のサイトの振り分け

    以前、このサイトで検索して、トップページは <script type="text/javascript"> if ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0) { location.href = '/i/'; } </script> でできました。 ですが、最近、スマートフォンを新しくしたら、トップページが表示されなくなってしまいました。 どうしてでしょう? あと、トップページ以外のページはどのように振り分けをすればよいのでしょうか? よろしくお願いします。

  • Safariを判別し別ページに飛ばすには

    javascriptでブラウザを判別して、ブラウザによって違うページに飛ばしています。 基本的にはIEとそれ以外なのですが、Safariだけが別ページに飛んでくれません。(index.htmlにいたままになる) 下記のようにしていますが、どうすれば飛ぶようになるでしょうか? よろしくお願いします。 <script type="text/javascript"> if(navigator.userAgent.indexOf("MSIE") != -1){ window.location.href = "index.html";}     : else if(navigator.userAgent.indexOf("safari") != -1){ window.location.href = "index2.html";} </script>

  • スマフォサイト構築

    現在、スマートフォンサイトを構築しているのですが、 スマフォでPCサイトを閲覧したら強制的にスマフォサイトにとばすようにPCサイトの全ページに下記タグを埋めました。 -------------------------------------------- $(function(){ var agent = navigator.userAgent; if(agent.search(/iPhone/) != -1 || agent.search(/iPod/) != -1 || agent.search(/Android/) != -1){ location.href = 'sp'+location.pathname; } }); -------------------------------------------- ここまでは大丈夫なのですが、 スマフォサイトに設置してある「PCサイトへ」のボタンをおしたときに、PCサイトにとばすようにしたいです。(参考サイト:http://www.chikinramen.jp/) 普通にリンクでとばすと、また強制的にスマフォサイトに戻されてしまいます。 PHP、.htaccessは使用できないので、jsでの設置の仕方をご教授いただけたらと思います。 よろしくお願いいたします。

  • ホムペ作成・スマホ・モバイル・PC切り替え

    ホームページを自作で作成し、完成したのですが 現在、スマホとPCのきりかえするボタンを こちらのタグにて設定しました。 <script type="text/javascript"> // iPhoneまたは、Androidの場合は振り分けを判断 if (document.referrer.indexOf('本サイトのアドレス') == -1 && ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0)) { if(confirm('スマートフォン用サイトを表示しますか?')) { location.href = '携帯サイトのアドレス'; } } </script> しかし、ガラケーで見ると、PC版、スマホ版、どちらもデザインが崩れていて見にくい状態です。 それにこのジャバスプリクトはガラケーでは表示されません。 そこで詳しい方に質問なのですが、ガラケーで、わたしのホームページにアクセスした場合 アメブロに飛ぶように設定などできませんか? またこのような「スマートフォン用サイトを表示しますか?」というようなコメントも出すことは可能でしょうか?

  • JavaScript、動作解説のおねがい!

    こんにちは。お世話になります。 次のJavaScriptは、どういった事(何を)するものか、おしえてください。 <script type="text/javascript"> //<![CDATA[ if ((top != self) && location.href.match(/^http:\/\/[\d]+\.[\d]+\.[\d]+\.[\d]+\/translate_c/)){ if ( navigator.appName == 'Netscape' && parseInt(navigator.appVersion) == 6 ) { top.location.replace(location.href); } else { top.location = location.href; } } //]]> </script> よろしくお願いします。