navigatorを使って使用ブラウザを調べる方法について解説

HOME
更新日:2017.03.02
HOMEJavaScript入門 > navigatorでブラウザを調べる1

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を利用したブラウザ判別スクリプトを組んでみることにします。