トップページ >  JavaScript >  ブラウザを判定する
初版2008/08/25: 最終更新日2013/02/06
  ブラウザを判定する
目次
ブラウザを判定する
ソース
Safariに対応する
ブラウザを判定する
ブラウザを判定するにはnavigator.userAgentを使用して判断します。
ただし、ブラウザによってはuserAgentは変更することが可能です。


<script type="text/javascript">
function a(){
    alert(navigator.userAgent);
}
</script>

この文字列に MSIE という文字列が入っていれば使用しているブラウザはIEになります。
これを判断するにはindexOfを使用します。indexOfでは第一引数に指定した文字列が含まれない場合、-1を返します。
これを利用してブラウザの判断をします。各種ブラウザで実行した例です。

IE


Opera


FireFox


Chrome


Safari


以下のボタンを押すとご使用のブラウザ名が表示されます。



ソース
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
function b(){
    if(navigator.userAgent.indexOf('MSIE') != -1){
        alert("IE");
    }else if(navigator.userAgent.indexOf('Opera') != -1){
        alert("Opera");
    }else if(navigator.userAgent.indexOf('Firefox') != -1){
        alert("Firefox");
    }else if(navigator.userAgent.indexOf('Chrome') != -1){
         alert("Chrome");
    }else{
         alert("Other");
    }
}
</script>
<input type="text" name="txt" onClick="b()">
</body>
</html>

Safariに対応する
上記のソースをSafariで実行するとOtherとなります。Safariのnavigator.userAgentでもSafariと出力されるので、それで対応します。
ChromeでもSafariと表示されますが、if文の分岐でChromeを先に判断すれば解決できます。
以下のボタンを押すとSafariも正しく表示されます。



以下、ソースです。

<script type="text/javascript">
function c(){
    if(navigator.userAgent.indexOf('MSIE') != -1){
        alert("IE");
    }else if(navigator.userAgent.indexOf('Opera') != -1){
        alert("Opera");
    }else if(navigator.userAgent.indexOf('Firefox') != -1){
        alert("Firefox");
    }else if(navigator.userAgent.indexOf('Chrome') != -1){
         alert("Chrome");
    }else if(navigator.userAgent.indexOf('Safari') != -1){
         alert("Safari");
    }else{
         alert("Other");
    }
}
</script>
<input type="button" name="browser" value="button" title="tetet" onclick="c()" />