- ベストアンサー
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( "不明" ); }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
そりゃあフローで、firefoxじゃないときは 「不明」と書けとなっているからでしょ? ieじゃなく、firefoxじゃないときは不明なら elseがぬけてます ×if(IE){};if(FOX){}else{} ○if(IE){}else if(FOX){}else{}
その他の回答 (1)
- Ikonos00
- ベストアンサー率28% (86/302)
if( ua.indexOf( "Firefox" ) > -1 ) を else if( ua.indexOf( "Firefox" ) > -1 ) にすれば良いのでは? 今の状態だと、 ・IEだったら ・FireFoxだったら、それ以外だったら。 と、別々の判定になっていますよ。
お礼
ご回答いただきどうもありがとうございました。
お礼
ご回答いただきどうもありがとうございました。