0

以下の関数を使用して、IE のバージョンを検出しました。

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

このコードは、IE ブラウザーが使用されている場合は IE のバージョンを返し、他のブラウザーが使用されている場合は false を返します。IE6、IE9、Chrome で使用できます。Firefox の最新バージョン v20 で試してみると、動作しません (ウェブサイトがハングします)。どうしてか知ってる?

または、IE のバージョンを検出するために使用できる他の関数はありますか?

4

8 に答える 8

0

msdn から次のスクリプトを入手しました。

    function getInternetExplorerVersion()
    // Returns the version of Internet Explorer or a -1
    // (indicating the use of another browser).
    // http://msdn.microsoft.com/en-us/library/ms537509(v=vs.85).aspx
    {
      var rv = -1; // Return value assumes failure.
      if (navigator.appName == 'Microsoft Internet Explorer')
      {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
          rv = parseFloat( RegExp.$1 );
      }
      return rv;
    }

<html>個人的には、条件付きコメントを使用して、常に にクラスを適用するだけです。後で、javascript でクラス名を確認します。

于 2014-08-08T21:21:18.017 に答える
0

これは私にとってはうまくいきます.IE9からIE11までテストしました. IE11 の useragent 文字列は、それ以前のバージョンとは異なります。そのため、ここには 2 つの異なるテストがあります。

if (/msie|trident/ig.test(navigator.userAgent)) {
  var matches = navigator.userAgent.match(/MSIE\s([\d\.]+)/) || navigator.userAgent.match(/rv:([\d\.]+)/);
  var ieVersion = parseInt(matches[1], 10);
}
于 2014-07-14T13:46:28.803 に答える
0

これは非常に見苦しいですが、IE の条件付きコメントを使用すると簡単です。

編集:これはウィキペディアの例に基づいたより良いバージョンです

<script>
    var internet_explorer_version = -1;

/*@cc_on

  @if (@_jscript_version == 10)
    internet_explorer_version = 10;

  @elif (@_jscript_version == 9)
    internet_explorer_version = 9;

  @elif (@_jscript_version == 5.8)
    internet_explorer_version = 8;

  @elif (@_jscript_version == 5.7 && window.XMLHttpRequest)
    internet_explorer_version = 7;

  @elif (@_jscript_version == 5.6 || (@_jscript_version == 5.7 && !window.XMLHttpRequest))
    internet_explorer_version = 6;

  @elif (@_jscript_version == 5.5)
    internet_explorer_version = 5.5;

  @end

@*/
</script>

条件付きコメントは IE4+ でのみサポートされています。古い IE または非 IE ブラウザでは、すべてのチェックがスキップされ、-1. このスクリプトは 5.5 以降をチェックします。

于 2013-05-07T07:18:46.470 に答える