クライアント側で利用しているブラウザーの種類を判定する方法
イントラマートでクライアント側で利用しているブラウザーの種類を判定したい時があります。
イントラマートとは
株式会社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()関数ではその文字列からブラウザーの名称を探し出しています。
ブラウザーの判定方法については
を参考にして処理を作成しました。
ブラウザーを判定する順番にも「コツ」があるようですね。
以上、クライアント側で利用しているブラウザーの種類を判定する方法でした。