• ベストアンサー

JavaScriptでブラウザの判別をしたいのですがIEだけelseの処理がなぜか追加されてしまう。

ブラウザとバージョンを表示するスクリプトを書きたいのですがIEのときだけ 「Internet Explorer: 6.0不明」のようにelseの部分を書き出してしまいます。 Firefoxのときは「Firefox: 1.5.0.4」となりelseの部分を書き出しません。 なぜこのような結果になるのでしょうか? ちなみにFirefoxの判別の部分を消去するとなぜかこの問題が起こりません。 改善策をご存知の方がおられましたらご回答をよろしくお願いします。 ua = navigator.userAgent; if( ua.indexOf( "MSIE" ) > -1 ) { str = ua.indexOf( "MSIE" ) + 5; ver = ua.substring( str, str + 3 ); document.write( "Internet Explorer: " + ver ); } //↓ここの間を消去すると問題は起こらない。 if( ua.indexOf( "Firefox" ) > -1 ) { str = ua.indexOf( "Firefox" ) + 8; ver = ua.substring( str, str + 7 ); document.write( "Firefox: " + ver ); } //↑ここの間を消去すると問題は起こらない。 else { document.write( "不明" ); }

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

そりゃあフローで、firefoxじゃないときは 「不明」と書けとなっているからでしょ? ieじゃなく、firefoxじゃないときは不明なら elseがぬけてます ×if(IE){};if(FOX){}else{} ○if(IE){}else if(FOX){}else{}

nana_watuki
質問者

お礼

ご回答いただきどうもありがとうございました。

その他の回答 (1)

  • Ikonos00
  • ベストアンサー率28% (86/302)
回答No.2

if( ua.indexOf( "Firefox" ) > -1 ) を else if( ua.indexOf( "Firefox" ) > -1 ) にすれば良いのでは? 今の状態だと、 ・IEだったら ・FireFoxだったら、それ以外だったら。 と、別々の判定になっていますよ。

nana_watuki
質問者

お礼

ご回答いただきどうもありがとうございました。

関連するQ&A