JavaScriptには、navigatorオブジェクトという、ブラウザ等の利用環境を識別するオブジェクトがあります。なんとなく気になったので、”appCodeName”と”appName”と”appVersion”と”userAgent”をそれぞれのブラウザで見たときの動作を、バージョンなどバラバラですが、調べれた分だけまとめてみました。なお、appVersionやuserAgentのかっこ内は、利用しているパソコンの環境によっても異なることがあります。
| appCodeName | |
|---|---|
| appName | |
| appVersion | |
| userAgent | |
| IE6 | Mozilla |
| Microsoft Internet Explorer | |
| 4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) | |
| Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) | |
| IE7 (IE9の開発者ツール使用時) |
Mozilla |
| Microsoft Internet Explorer | |
| 4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPDTDF; BRI/2; .NET4.0C; .NET4.0E) | |
| Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPDTDF; BRI/2; .NET4.0C; .NET4.0E) | |
| IE8 | Mozilla |
| Microsoft Internet Explorer | |
| 4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; BTRS122159; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322) | |
| Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; BTRS122159; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322) | |
| IE9 | Mozilla |
| Microsoft Internet Explorer | |
| 5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) | |
| Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPDTDF; BRI/2; .NET4.0C; .NET4.0E) | |
| Firefox4.0.1 | Mozilla |
| Netscape | |
| 5.0 (Windows) | |
| Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 | |
| Firefox9.0.1 | Mozilla |
| Netscape | |
| 5.0 (Windows) | |
| Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1 | |
| Chrome12.0.742.122 | Mozilla |
| Netscape | |
| 5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30 | |
| Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30 | |
| Chrome16.0.912.75 | Mozilla |
| Netscape | |
| 5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7 | |
| Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7 | |
| Safari5.0.5 | Mozilla |
| Netscape | |
| 5.0 (Windows NT 5.1) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7 | |
| Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1 | |
| Safari5.1.2 | Mozilla |
| Netscape | |
| 5.0 (Windows; U; Windows NT 5.1; ja-JP) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1 | |
| Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7 | |
| Opera11.11 | Mozilla |
| Opera | |
| 9.80 (Windows NT 5.1; U; ja) | |
| Opera/9.80 (Windows NT 5.1; U; ja) Presto/2.8.131 Version/11.11 | |
| Opera11.60 | Mozilla |
| Opera | |
| 9.80 (Windows NT 5.1; U; ja) | |
| Opera/9.80 (Windows NT 6.1; U; ja) Presto/2.10.229 Version/11.60 | |
| あなたの環境 | |
appCodeNameはいったいなんなんでしょう。ブラウザのコードネームを示すそうなのですが、全部”Mozilla”って・・・。多分中には、”Mozilla”以外を返すものもあるのでしょう。
ところで、パッと見userAgentを見たら何のブラウザを使ってるか判別できそうですが、どうもこの値は偽装できてしまうそうです。でも、userAgentを使わなかったら、Firefoxを判別できない・・・。
これで終わるのはなんなので簡単に、navigatorオブジェクトを見てリンク先を変える関数作ってみた。
function navlink(bro1link, bro2link, nav){
if(nav>-1) {
location.href = bro1link;
} else {
location.href = bro2link;
}
}
使用例
<a href="javascript:navlink('http://am-yu.net/ie9/','http://am-yu.net/ie8/',navigator.appVersion.indexOf('MSIE 9.0'))">クリック!</a>
第三引数に、navigatorオブジェクトの検索結果、第一引数に真だった時のリンク先。第二引数に偽だった時のリンク先。ものすごい、使う人にとって親切じゃない関数! もっと使いやすい関数が書けるようになりたい。後、変数名もうまくつけれるよになりたい・・・
応用例
<a href="javascript:navlink('javascript:navlink(\'http://am-yu.net/ie9/\',\'http://am-yu.net/ie8/\',navigator.appVersion.indexOf(\'MSIE 9.0\'))','javascript:navlink(\'http://am-yu.net/opera/\',\'javascript:navlink(\\\'http://am-yu.net/googlechrome/\\\',\\\'http://am-yu.net/browserpage/\\\',navigator.appVersion.indexOf(\\\'Chrome\\\'))\',navigator.appName.indexOf(\'Opera\'))',navigator.appName.indexOf('Internet Explorer'))">クリック!</a>
まどろっこしいにもほどがある!!
余談ですが、WordPressが勝手に'(シングルクォテーション)を”(ダブルクォテーション)に変換するので困りました。上記の”クリック!”というリンクはJavaScriptで制御しています。

コメント