iPhoneを判別する

Webkit Detect

Webkitからのアクセスを判別するスクリプト
iPhone/iPod touchに対応してます。

function isMobile()

の結果で携帯端末のWebkitかどうか(=iPhone/iPod touch かどうか)を判別できるみたい。
適当に組み合わせてリダイレクトかけるなどして使えますかね。
*1

    var isMobile = WebKitDetect.isMobile();
    if (isMobile) {
        location.href = ほげほげ;
    }

修正前に書いてたようにファイル名を置換してリダイレクトしたい場合は

loctionとかってなにー

最初に書いていたのはこれ

    var isMobile = WebKitDetect.isMobile();
    if (isMobile) {
        var urlStr = location.search;
        var ipnUrl = urlStr.replace('PAGE1','ipn_PAGE1');
        location.href = ipnUrl;
    }

location.searchで取得した値に対して置換をかけるようになっています。

ただ、説明として「別のファイルにリダイレクト」、みたいに書いていたのですが、
location.searchではパラメータの変数名と値しかとってこれないため、
これだとファイル名の置換にはならないのでした。

たまたま自分が作業してる環境では、テンプレート名(ファイル名)がパラメータに値として入っていたため、
なんとなく「これを置換してあげれば別ページにリダイレクトできる」と思って書いていました。

そもそもlocationオブジェクトとは…

■ アドレス情報

◆ window.location (e3/N2)
現在表示しているアドレス(URL)に関する情報を持つオブジェクトです。

◆ window.location.protocol (e3/N2)
◆ window.location.host (e3/N2)
◆ window.location.hostname (e3/N2)
◆ window.location.port (e3/N2)
◆ window.location.pathname (e3/N2)
◆ window.location.search (e3/N2)
◆ window.location.hash (e3/N2)
URL の各部を示す文字列を返します。href の値が "http://www.yyy.zzz:8000/aaa/bbb/ccc.cgi?KEY=CGI#XYZ" だとすると、それぞれの値は以下のようになります。

protocol: "http:"
host: "www.yyy.zzz:8000"
hostname: "www.yyy.zzz"
port: "8000"
pathname: "/aaa/bbb/ccc.cgi"
search: "?KEY=CGI"
hash: "#XYZ"

http://www.tohoho-web.com/js/location.htm

こんな感じで、そのページのURLから色々値を取得できるようになってます。*2

なので、ファイル名を置換->リダイレクトとしたい場合、
ファイル名を取得して置換したいならば「location.pathname」を使う必要がありました。
そもそも、url内の該当文字列を別の文字列に置換してリダイレクトでよければ、以下のようにすれば済みます。

var url = location.href;
location.href = url.replace('hoge', 'fuga');

//by id:ama-ch ><

書式
 元の文字列.replace(文字列1,文字列2)

http://www.scollabo.com/banban/jsindex/sample/sample_225.html

というわけでフォローアップでした。
もっと勉強します…>< thx id:ama-ch!

*1:id:ama-chにそれじゃできないよって教えてもらったので修正しました。

*2:jsはブラウザによって実装が違うらしいので、色々調べたほうがいいみたい。mozillaはこれ:location - MDC https://developer.mozilla.org/ja/DOM/window.location