• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UAによるリダイレクト)

UAによるリダイレクトとは?

このQ&Aのポイント
  • UAによるリダイレクトとは、スマートフォンからのアクセスを他のページに飛ばす方法です。
  • javascriptなどに詳しくない方でも、特定の条件でリダイレクトが行われる仕組みです。
  • -1や0の意味は、条件を満たしていないことを示す数値です。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

#1様の説明の通りですが、 ご質問のコードを意訳すると… リファラーが指定のアドレス(muay-thai-pck.com)を含まず、かつ、ユーザエージェントが iPhon(かつiPadではない)を含むかiPodを含むか、またはAndroidを含む場合に  location.href = 'url'; を実行する。 というような意味になります。(条件式を文章にするとわかりにくいですが)  location.href = 'url'; はURLが 'url' のサイトへ遷移するという命令で、このままだと「url」という(存在しない)URLに移動しようとしますので、この部分を修正する必要があるでしょう。 同様に、リファラーの部分を変更すればよいのか、そもそも必要なのかといったことは、使用者の意図によりますので私にはわかりません。

その他の回答 (4)

回答No.5

たしかにNo.4での回答のように何でも飛ばすのは、違うかもしれませんね。 リンクにするか、confirmで確認するかですね~。

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.4

リダイレクトよりリンク張った方がいいよ 6インチのスマホでPC用のページみたい人だっているし Androidだってテレビからカーナビから腕時計まで搭載されるんだから 何でもかんでもスマホ用に飛ばすのは間違い

回答No.3

navigator.userAgentっていうのが、ブラウザのユーザーエージェントが入っている変数です。 ユーザーエージェントを判別する場合、によく出てきます。 iPhoneのUAはこんな感じ Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9A405 Safari/7534.48.3 そして、.indexOf("iPhone")や.indexOf('iPad')は、それぞれ前の文字列(例では、ユーザーエージェントですね)にiPhoneやiPadの文字列が何文字目にいるかを調べて何文字目かを数値で返してくれます。 見つからない場合は、-1を返します。 navigator.userAgent.indexOf('iPhone') > 0 は、ユーザーエージェントの1文字目以降にiPhoneという文字があるかどうかを調べています。 navigator.userAgent.indexOf('iPhone')は、13を返すので、13 > 0で、13は0より大きいので、true(真)となります。 &&は&&の左と右のどちらも真の場合は真、そうでない場合は、偽(false)となります。 それをif文と組み合わせてiPhoneかiPadもしくはiPodもしくはAndroidの場合は、リダイレクトする処理をしています。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

<script> str="abchogeabc"; document.write('hoge='+str.indexOf('hoge')+'<br>'); document.write('fuga='+str.indexOf('fuga')+'<br>'); </script> 指定文字が出現する箇所を返しています。 hogeが出現するのが3文字目(0文字目から数えて)ということ 出現しなければ-1 例示では0より大きい「>0」としていますが「>=0」の方が妥当 ちなみにjavascriptは環境依存ですので、javascriptで振り分け するのは必ずしも正しい動作は期待できません。

関連するQ&A

専門家に質問してみよう