5

次のコードを使用して、システム内の IE のバージョンを取得しています。

    var browser = navigator.appName;
    var b_version = navigator.appVersion;
    var version = parseFloat(b_version);
    alert(version);

ただし、IE^ および IE7 では常に取得されるバージョンは 4 です。正確なバージョンを取得するにはどうすればよいですか?

4

4 に答える 4

7

navigator.appVersion 文字列がこのように 4.0 で始まるため、4 になりました。

4.0 (compatible; MSIE 6.0; Windows NT 5.0; ...)

このようにするとMSIE 6.0、上記のケースが得られます

alert(navigator.appVersion.match(/MSIE [\d.]+/))

あなただけがしたい6.0場合は、次のようにすることができます

alert(navigator.appVersion.match(/MSIE ([\d.]+)/)[1])
于 2009-12-18T05:27:23.220 に答える
4

通常、バージョン検出を使用することはお勧めできません。実際、ブラウザ検出でさえ推奨されません。代わりに、オブジェクト検出を試してください。

于 2009-12-18T05:14:07.443 に答える
2

以下の関数isIEは、IE が検出された場合は IE バージョンを返し、それ以外の場合はFALSEを返します。

function isIE () {
  var myNav = navigator.userAgent.toLowerCase();
  return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;
}

これは、weroro による回答 hereに基づいています。

于 2013-06-25T13:24:36.953 に答える
-2

次のようなことを試してください:

<script language="javascript">
        Event.observe(window, 'load', function() {
            var el = $("browserName");
            var BO = detectBrowser();
            if(BO.ie6){
                el.innerHTML = "<b>We do not support IE6. Please click <a href=\"http://www.microsoft.com/windows/downloads/ie/getitnow.mspx\">here</a> to upgrade.</b>";
            }else{
                el.innerHTML = "<b>Thank You for not running IE6.</b>";
            }
        });
</script>
于 2009-12-18T05:13:24.407 に答える