- HOME
- JavaScript入門
- navigatorでブラウザを調べる1
ここから、navigatorについて少し調べていきたいと思います。 主に閲覧しているブラウザの情報を取得します。 ブラウザによってページを分けたり、スタイルシートを変更したりする時に用いることができます。
ブラウザを調べるのは、実は簡単ではありません。 アプリケーション名、 バージョン、 エージェント名などをかき集めて、ようやく特定できます。
ここでは、Internet Explorer(IE),FireFox,Opera,Google Chrome,Safariの5つで、 navigatorで取得される値について調査してみることにしましょう。 そして次のページで、それらを分類する方法について考えてみたいと思います。
アプリケーション名を取得する
まずはアプリケーション名を取得してみることにしましょう。 HTMLのBODY内に以下のように記入してみてください。 navigator.appNameでアプリケーション名を取得することができます。
<script> document.write(navigator.appName); </script>
上記の結果:
各ブラウザでどのように表示されるかは、以下の通りです。
- IE
- Microsoft Internet Explorer
- FireFox
- Netscape
- Opera
- Opera
- Chrome
- Netscape
- Safari
- Netscape
この結果を見ると、Internet ExplorerとOperaは直ぐに識別できることが分かります。 しかしFireFox,Chrome,Safariはどれも「Netscape」という文字を返します。
バージョンを調べる
では次にブラウザのバージョンを調べてみることにしましょう。 navigator.appVersionで取得できます。
<script> document.write(navigator.appVersion); </script><上記の結果>
他のブラウザでは大体以下のような感じです(私の環境での結果です)
- IE
- 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; .NET4.0C; AskTbFXTV5/5.12.2.16749; .NET4.0E)
- FireFox
- 5.0 (Windows)
- Opera
- 9.80 (Windows NT 6.1; U; en)
- Chrome
- 5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.218 Safari/535.1
- Safari
- 5.0 (Windows; U; Windows NT 6.1; ja-JP) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1
「Safari」という文字はChromeとSafariの両方にあります。 しかし「Chrome」という文字はGoogle Chromeしかありません。 これらをif文で分岐すれば、2種類のブラウザを判別できます。 他のブラウザはバージョンでは見分けることができません。
一応ここまででIE,Opera,Chrome,Safariの4つは判別できるようになりました。 残りがFireFoxとしても良いのですが、別のブラウザである可能性もあります。 できたら「FireFox」という文字を見たいのですが、それは可能でしょうか? 最後の部分で検証してみたいと思います。
エージェント名
ブラウザ判別の最後は、エージェント名です。navigator.userAgentで調べることができます。
<script> document.write(navigator.userAgent); </script><上記の結果>
他のブラウザの結果は、大体以下の通りです(私の環境です)
- IE
- 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; .NET4.0C; AskTbFXTV5/5.12.2.16749; .NET4.0E)
- FireFox
- Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.1) Gecko/20100101 Firefox/6.0.1
- Opera
- Opera/9.80 (Windows NT 6.1; U; en) Presto/2.9.168 Version/11.50
- Chrome
- Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.218 Safari/535.1
- Safari
- Mozilla/5.0 (Windows; U; Windows NT 6.1; ja-JP) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1
無事「Firefox」の文字を確認できました。 ついでにブラウザのバージョンもエージェントで調べることができます(IEだけ少し特殊ですが)。
さて、userAgentを最初から使えば5つのブラウザを識別できるではないか、と考えられた方もおられると思います。 その通りです。しかし幾つかの資料を見てみると、このエージェントは詐称が可能であると述べられていました。 それで、他の方法も考えてみたわけです。
では次のページで、この3つのnavigatorを利用したブラウザ判別スクリプトを組んでみることにします。