人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javaScriputでの質問です。

今、携帯サイトを作っているのですが、
普通のPC用のサイトにアクセスされた際、
PCからアクセスされた場合はそのまま見れて、
携帯からアクセスされて場合は、携帯サイトに飛ぶようにしたいのですが、どうすればいいのでしょうか?

headにonloadの記述で飛ぶような感じだと思うのですが、
よくわかっていないので、書き方を教えていただきたいです、
よろしくお願いします。


●質問者: snoopy_japan
●カテゴリ:ウェブ制作
✍キーワード:アクセス サイト 携帯 携帯サイト 普通
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ko8820
●30ポイント

携帯のブラウザ(スマートフォン除く)は、Javascriptが動作しないんです。

記述しても無視されます。

だから他の方法を使うしかありません。

http://www.systemania.biz/source/keitaihuriwake01.html

htaccessを使うのが簡単です。

◎質問者からの返答

ありがとうございます。

早速調べてみようと思います。


2 ● Cherenkov
●30ポイント

通常はCGIや.htaccessなどでuser agentを見て振り分けます。

JavaScriptでの判定だと、JSが動かない携帯や、PCでも無効にしている場合はできません。


それでもJSを使って簡易的に判定する場合はnavigator.userAgentでチェックする方法があります。

例えば、

Detect Mobile Browser - Open source mobile phone detection

(モバイルからのアクセスを判定してリダイレクトするコードを生成するサービス)

このページのDownload ScriptsからJavaScriptかjQueryのコードを見てください。

JavaScriptは最後にリダイレクト先URLを書き換えてからそのまま貼り付けるだけ。

jQueryはif(jQuery.browser.mobile)で判定するようです。

(日本向けに正規表現を追加したほうがいいのかもしれません。)


参考

MOONGIFT : モバイルアクセスか否かを判定する「Detect Mobile Browser」 オープンソース・ソフトウェア/フリーウェアを毎日紹介


3 ● niwa-mikiho
●50ポイント ベストアンサー

最近でこそは JavaScript を解釈出来る携帯も現れては居ますが、

サーバーまたはスクリプトで判断してやるのが妥当です。


サーバーで判断する場合は ko8820 さんも書かれている mod_rewrite を使う方法です。

しかし mod_rewrite は全ての HTTP サーバーあるものではなく Apache の設定となります。

また .htaccess が許可されていなかったり、そもそも mod_rewrite が動作してないなどがあるため、

自分の自身で好きに弄れるスクリプトでの処理をオススメします。


携帯か PC かを分けるには


USER-AGENT

IP アドレス (ホスト名 (yahoo.jp など))


で見分ける2つの方法があります。


USER-AGENT は偽装も可能であるため、何が何でも PC には携帯サイトを見せないのであれば

IP アドレスによる判別が良いかと思います。


で、携帯かどうか判別できたら

print "Status: 302 Found\n";

print "Location: http://?\n\n";

で転送します。

◎質問者からの返答

いろいろな方法をありがとうございます、

早速調べてみようと思います、

助かりましたありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ