クライアント側で利用しているブラウザーの種類を判定する方法

2018/04/25イントラマートintra-mart Accel Platform

記事内に広告が含まれています。

イントラマートでクライアント側で利用しているブラウザーの種類を判定したい時があります。

イントラマートとは
株式会社NTTデータイントラマート社が開発・販売している、Webアプリケーションシステムのシステム共通基盤(統合型フレームワーク)で、国内の著名企業を中心に6,000社以上に導入されています。 イントラマートを導入することにより、Webシステム開発における短納期・低コスト・標準化推進・品質向上を実現できます。
詳しくはこちらをご覧ください。

イントラマートでクライアント側で利用しているブラウザーの種類を判定する方法

イントラマートではrequestオブジェクトの中に「User-Agent」というパラメータを持ってきているのでそれを利用します。

var logger = Logger.getLogger();
function init( request )
{
    logger.info( "利用しているブラウザーは[" + getBrowserName( request ) + "]です。" ) ;
}

function getBrowserName( request )
{
    var userAgent = new String( request.getHeader( "User-Agent" )).toLowerCase() ;
    logger.info( "User-Agent=[" + userAgent + "]" ) ;

    var ret = "unknown" ;

    if( userAgent.indexOf( "msie" ) != -1
        || userAgent.indexOf( "trident" ) != -1 ) {
        ret = "Internet Explorer" ;
    } else if( userAgent.indexOf( "edge" ) != -1 ){
        ret = "Edge" ;
    } else if( userAgent.indexOf( "chrome" ) != -1 ){
        ret = "Google Chrome" ;
    } else if( userAgent.indexOf( "safari" ) != -1 ){
        ret = "Safari" ;
    } else if( userAgent.indexOf( "firefox" ) != -1 ){
        ret = "FireFox" ;
    } else if( userAgent.indexOf( "opera" ) != -1 ){
        ret = "Opera" ;
    }
    return ret ;
}

requestオブジェクトからヘッダーの内容を取り出すには「getHeader()」メソッドを利用します。

イントラマートが設定してきたUser-Agentの一例は

mozilla/4.0 (compatible; msie 7.0; windows nt 10.0; wow64; trident/7.0; .net4.0c; .net4.0e; .net clr 2.0.50727; .net clr 3.0.30729; .net clr 3.5.30729)

のような内容で、取得した文字列の中にアクセスに利用したブラウザーの情報が入れられています。

getBrowserName()関数ではその文字列からブラウザーの名称を探し出しています。

ブラウザーの判定方法については


を参考にして処理を作成しました。
ブラウザーを判定する順番にも「コツ」があるようですね。

以上、クライアント側で利用しているブラウザーの種類を判定する方法でした。

システムトラストでは一緒に働いていただける仲間を募集中です。
株式会社システムトラスト

システムトラストでは、システムエンジニア、プログラマーなどを随時募集中です。気軽にご相談ください。

お問合せ