ページ 11

htmlからプログラミング初心者。ブラウザのバージョンについて

Posted: 2012年5月17日(木) 05:32
by テマリ
<script type="text/JavaScript">
// ブラウザバージョンセット
var brver; // ブラウザのバージョン
var NN6; // NN6.0以上なら true
var IE5; // IE5.0以上なら true
brver = eval(0 + navigator.appVersion.charAt(0));
NN6 = (brver >= 5 && navigator.appName=="Netscape");
IE5 = (brver >= 4 && navigator.userAgent.indexOf("MSIE")!=-1);
</script>

htmlのこれについて教えて欲しい。
var brver;等のvarは変数で。
brver = eval(0 + navigator.appVersion.charAt(0)); の=は代入というところまでわかる。

trueについてと
eval(0 + navigator.appVersion.charAt(0));
(brver >= 5 && navigator.appName=="Netscape");
(brver >= 4 && navigator.userAgent.indexOf("MSIE")!=-1);
この3つについてできるだけ詳しく教えて欲しい。

Re: htmlからプログラミング初心者。ブラウザのバージョンについて

Posted: 2012年5月17日(木) 07:40
by nullptr
ブラウザを判定するコードですね。

trueというのは二値論における「真」を表すものです。
JavaScriptは最近扱っていないですから正しいかはわかりませんが、brver = eval(0 + navigator.appVersion.charAt(0)); は単にブラウザUA名を格納し、
NN6 = (brver >= 5 && navigator.appName=="Netscape");
は、ブラウザバージョンが5以上かつ UAのな前がNetscapeならtrueを格納、
IE5 = (brver >= 4 && navigator.userAgent.indexOf("MSIE")!=-1);
は、ブラウザバージョンが4以上かつ UAの名前がMSIEが-1以外ならtrueを格納する、
という意味のコードです。

navigatorはOSやUAの情報を取得するオブジェクトです。
IE4.01 Microsoft Internet Explorer
IE5.01 Microsoft Internet Explorer
NN2.02 Netscape
NN3.03Gold Netscape
NN4.05 Netscape
NN4.7 Netscape
NN6PR1 Netscape
Opera4.0 Netscape
となっていますので。

たしかnavigator.userAgent.indexOf("MSIE")!=-1は、IE5以降はは先頭に「MSIE」があるので、それをindexOfで調べているのでしょう。コードから察するに正しければ-1以外が格納されるということでしょう

Re: htmlからプログラミング初心者。ブラウザのバージョンについて

Posted: 2012年5月17日(木) 08:13
by テマリ
返信ありがとうございます。
とてもわかりやすい説明で疑問に思っていた事がすぐに解けました。
詳しい説明ありがとうございました。