JavaScriptによるIE5とIE4の条件分岐について

[上に] [前に] [次に]
たかまろ 1999/11/22(月) 12:35:56
プラウザごとに、その動作を区別するやり方に
JavaScriptの
if((navigator.appName=="Microsoft Internet Exprorer")&((parseInt(navigator.appVersion) >= 4.0 ){
           真の時の動作命令
}
があると思うのですが
これだとIE5の他にIE4.*も範囲に入ってしまいます。
IE5とIE4をどのように区分けしたらよいか教えて下さい。

ちゃいパパ [HomePage] 1999/11/22(月) 13:20:54
以下ではどうでしょ〜

if((navigator.appName=="Microsoft Internet Exprorer") && (navigator.appVersion.charAt(0) == "5"){
  IE5の処理
}
else{
    if((navigator.appName=="Microsoft Internet Exprorer") &&(navigator.appVersion.charAt(0) == "4"))
       IE4の処理
    }
    else{
       その他
    }
}

ちゃいパパ [HomePage] 1999/11/22(月) 13:23:13
括弧が一つぬけました!

if((navigator.appName=="Microsoft Internet Exprorer") && (navigator.appVersion.charAt(0) == "5"){
  IE5の処理
}
else{
    if((navigator.appName=="Microsoft Internet Exprorer") && (navigator.appVersion.charAt(0) == "4")){
       IE4の処理
    }
    else{
       その他
    }
}

たかまろ 1999/11/22(月) 13:44:57
ありがとうございます。
家に帰ったら、試してみます。。

たかまろ 1999/11/22(月) 16:07:23
ふと思ったんですが、
navigator.appVersionで取得された情報は、自分の場合
バージョン    4.0 (compatible; MSIE 5.0; Windows 95)
と返ってきます。
ということはIE4以上の場合、最新の5であっても
4.0で 5では認識しないのではないでしょうか?
appVersionでIEの4.0と5を区別する方法ってないですか?

 

ちゃいパパ 1999/11/22(月) 16:38:08
今度はデバッグしました!

if((navigator.appName=="Microsoft Internet Explorer") && (navigator.appVersion.charAt(22) == "5")){
    alert("IE5");
}
else{
  if((navigator.appName=="Microsoft Internet Explorer") && (navigator.appVersion.charAt(22) == "4")){
     alert("IE4");
  }
  else{
     alert("other");
  }
}

たかまろ 1999/11/22(月) 20:01:45
ありがとうございます。
charAtという関数は初めて知りました。
charAt(22) で
4.0 (compatible; MSIE 5.0; Windows 95)の文のスペースを含めた
0から数えて22番目の文字を見て、真か偽か決めるわけですね。

なるほど、勉強になりました。

たかまろ 1999/11/22(月) 20:04:04
[[解決]]
すいません、解決のチェック付け忘れました。

Nobu3 1999/11/22(月) 20:14:39
解決した後になんですが・・・。

ua = navigator.userAgent;
if(-1 < ua.indexOf('MSIE 5')){
    alert('IE5');
}else if(-1 < ua.indexOf('MSIE 4')){
    alert('IE4');
}else{
    alert('Other');
}

こんなのでもいけると思います。
参考までに。

ちゃいパパ 1999/11/22(月) 20:28:10
Nobu3さん、あいかわらずスマート!

私もC言語、strstr()みたなやつをさがしていたんですが、見つからなくて。
indexOf()ですねぇ!
勉強になりました!!

たかまろ 1999/11/22(月) 20:41:09
な なるほど。。。(^^;

# ふーむ もっと精進しなければ・・

zizz... [HomePage] 1999/11/22(月) 21:37:09
もう少しまともなものがこちらにあります。
http://developer.netscape.com/docs/examples/javascript/browser_type.html

[上に] [前に] [次に]