Detecteer IE-versie (vóór v9) in JavaScript

Ik wil gebruikers van onze website terugsturen naar een foutpagina als ze een versie van Internet Explorerouder dan v9 gebruiken. Het is onze tijd en ons geld gewoon niet waard om IE pre-v9te ondersteunen. Gebruikers van alle andere niet-IE-browsers zijn in orde en zouden niet moeten worden teruggestuurd. Hier is de voorgestelde code:

if(navigator.appName.indexOf("Internet Explorer")!=-1){     //yeah, he's using IE
    var badBrowser=(
        navigator.appVersion.indexOf("MSIE 9")==-1 &&   //v9 is ok
        navigator.appVersion.indexOf("MSIE 1")==-1  //v10, 11, 12, etc. is fine too
    );
    if(badBrowser){
        // navigate to error page
    }
}

Zal deze code het lukken?

Om een ​​paar opmerkingen weg te nemen die waarschijnlijk op mijn pad zullen komen:

  1. Ja, ik weet dat gebruikers hun useragent-string kunnen vervalsen. Ik maak me geen zorgen.
  2. Ja, ik weet dat programmeerprofessionals de voorkeur geven aan het opsnuiven van functie-ondersteuning in plaats van browser-type, maar ik denk niet dat deze benadering in dit geval zinvol is. Ik weet al dat alle (relevante) niet-IE-browsers de functies ondersteunen die ik nodig heb en dat alle pre-v9 IE-browsers dat niet doen. Functie voor functie op de hele site controleren zou zonde zijn.
  3. Ja, ik weet dat iemand die probeert toegang te krijgen tot de site met behulp van IE v1(of >= 20) ‘badBrowser’ niet op true krijgt en dat de waarschuwingspagina niet wordt weergegeven naar behoren. Dat is een risico dat we bereid zijn te nemen.
  4. Ja, ik weet dat Microsoft “voorwaardelijke opmerkingen” heeft die kunnen worden gebruikt voor nauwkeurige detectie van browserversies. IE ondersteunt niet langer voorwaardelijke opmerkingen vanaf IE 10, waardoor deze aanpak absoluut nutteloos wordt.

Nog andere voor de hand liggende zaken waar u op moet letten?


Antwoord 1, autoriteit 100%

Dit is mijn favoriete manier om het te doen. Het geeft maximale controle. (Opmerking: voorwaardelijke instructies worden alleen ondersteund in IE5 – 9.)

Stel eerst je dwz lessen correct in

<!DOCTYPE html>
<!--[if lt IE 7]> <html class="lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>    <html class="lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>    <html class="lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->    
<head>

Vervolgens kun je CSS gebruiken om stijluitzonderingen te maken, of, als je dat nodig hebt, wat eenvoudig JavaScript toevoegen:

(function ($) {
    "use strict";
    // Detecting IE
    var oldIE;
    if ($('html').is('.lt-ie7, .lt-ie8, .lt-ie9')) {
        oldIE = true;
    }
    if (oldIE) {
        // Here's your JS for IE..
    } else {
        // ..And here's the full-fat code for everyone else
    }
}(jQuery));

Met dank aan Paul Irish.


Antwoord 2, autoriteit 46%

Retourneer IE-versie of indien niet IE, retourneer false

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

Voorbeeld:

if (isIE () == 8) {
 // IE8 code
} else {
 // Other versions IE or not IE
}

of

if (isIE () && isIE () < 9) {
 // is IE version less than 9
} else {
 // is IE 9 and later or not IE
}

of

if (isIE()) {
 // is IE
} else {
 // Other browser
}

Antwoord 3, autoriteit 33%

Gebruik voorwaardelijke opmerkingen. U probeert gebruikers van IE te detecteren < 9 en voorwaardelijke opmerkingen werken in die browsers; in andere browsers (IE >= 10 en niet-IE), worden de opmerkingen behandeld als normale HTML-opmerkingen, wat ze ook zijn.

Voorbeeld HTML:

<!--[if lt IE 9]>
WE DON'T LIKE YOUR BROWSER
<![endif]-->

Je kunt dit ook puur met script doen, als je dat nodig hebt:

var div = document.createElement("div");
div.innerHTML = "<!--[if lt IE 9]><i></i><![endif]-->";
var isIeLessThan9 = (div.getElementsByTagName("i").length == 1);
if (isIeLessThan9) {
    alert("WE DON'T LIKE YOUR BROWSER");
}

Antwoord 4, autoriteit 33%

Als niemand anders een addEventLister-methode heeft toegevoegd en u de juiste browsermodus gebruikt, kunt u controleren op IE 8 of minder met

if (window.attachEvent && !window.addEventListener) {
    // "bad" IE
}

Verouderde Internet Explorer en attachEvent (MDN)


Antwoord 5, autoriteit 17%

MSIE (v6 – v7 – v8 – v9 – v10 – v11) eenvoudig detecteren:

if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
   // MSIE
}

Antwoord 6, autoriteit 9%

Dit is de manier waarop AngularJS controleertvoor IE

/**
 * documentMode is an IE-only property
 * http://msdn.microsoft.com/en-us/library/ie/cc196988(v=vs.85).aspx
 */
var msie = document.documentMode;
if (msie < 9) {
    // code for IE < 9
}

Antwoord 7, autoriteit 8%

Om IE8 en ouder betrouwbaar te filteren, kan het controleren van globale objectenworden gebruikt :

if (document.all && !document.addEventListener) {
    alert('IE8 or lower');
}

Antwoord 8, autoriteit 6%

Detectie van IE-versie met functiedetectie (IE6+, browsers vóór IE6 worden gedetecteerd als 6, retourneert null voor niet-IE-browsers):

var ie = (function (){
    if (window.ActiveXObject === undefined) return null; //Not IE
    if (!window.XMLHttpRequest) return 6;
    if (!document.querySelector) return 7;
    if (!document.addEventListener) return 8;
    if (!window.atob) return 9;
    if (!document.__proto__) return 10;
    return 11;
})();

Bewerken: ik heb voor uw gemak een bower/npm-repo gemaakt: ie-version

Bijwerken:

een compactere versie kan in één regel worden geschreven als:

return window.ActiveXObject === undefined ? null : !window.XMLHttpRequest ? 6 : !document.querySelector ? 7 : !document.addEventListener ? 8 : !window.atob ? 9 : !document.__proto__ ? 10 : 11;

Antwoord 9, autoriteit 4%

IE detecteren in JS met voorwaardelijke opmerkingen

// ----------------------------------------------------------
// A short snippet for detecting versions of IE in JavaScript
// without resorting to user-agent sniffing
// ----------------------------------------------------------
// If you're not in IE (or IE version is less than 5) then:
//     ie === undefined
// If you're in IE (>=5) then you can determine which version:
//     ie === 7; // IE7
// Thus, to detect IE:
//     if (ie) {}
// And to detect the version:
//     ie === 6 // IE6
//     ie > 7 // IE8, IE9 ...
//     ie < 9 // Anything less than IE9
// ----------------------------------------------------------
// UPDATE: Now using Live NodeList idea from @jdalton
var ie = (function(){
    var undef,
        v = 3,
        div = document.createElement('div'),
        all = div.getElementsByTagName('i');
    while (
        div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
        all[0]
    );
    return v > 4 ? v : undef;
}());

Antwoord 10, autoriteit 4%

Deze functie retourneert het IE-hoofdversienummer als een geheel getal, of undefinedals de browser niet Internet Explorer is. Dit is, net als alle user-agent-oplossingen, vatbaar voor spoofing van user-agents (wat sinds versie 8 een officiële functie van IE is).

function getIEVersion() {
    var match = navigator.userAgent.match(/(?:MSIE |Trident\/.*; rv:)(\d+)/);
    return match ? parseInt(match[1]) : undefined;
}

Antwoord 11, autoriteit 4%

Dit werkt voor mij. Ik gebruik het als een omleiding naar een pagina die uitlegt waarom we < IE9 en bieden links naar browsers die onze voorkeur hebben.

<!--[if lt IE 9]>
<meta http-equiv="refresh" content="0;URL=http://google.com">
<![endif]-->

Antwoord 12, autoriteit 3%

Uw code kan de controle uitvoeren, maar zoals u dacht, als iemand probeert toegang te krijgen tot uw pagina met IE v1 of > v19 krijgt de fout niet, dus het is misschien veiliger om de controle uit te voeren met Regex-expressie zoals deze onderstaande code:

var userAgent = navigator.userAgent.toLowerCase();
// Test if the browser is IE and check the version number is lower than 9
if (/msie/.test(userAgent) && 
    parseFloat((userAgent.match(/.*(?:rv|ie)[\/: ](.+?)([ \);]|$)/) || [])[1]) < 9) {
  // Navigate to error page
}

Antwoord 13, autoriteit 2%

Voorwaardelijke opmerkingen worden niet langer ondersteund in IE vanaf versie 10, zoals vermeld in de Microsoft-referentiepagina.

var ieDetector = function() {
  var browser = { // browser object
      verIE: null,
      docModeIE: null,
      verIEtrue: null,
      verIE_ua: null
    },
    tmp;
  tmp = document.documentMode;
  try {
    document.documentMode = "";
  } catch (e) {};
  browser.isIE = typeof document.documentMode == "number" || eval("/*@cc_on!@*/!1");
  try {
    document.documentMode = tmp;
  } catch (e) {};
  // We only let IE run this code.
  if (browser.isIE) {
    browser.verIE_ua =
      (/^(?:.*?[^a-zA-Z])??(?:MSIE|rv\s*\:)\s*(\d+\.?\d*)/i).test(navigator.userAgent || "") ?
      parseFloat(RegExp.$1, 10) : null;
    var e, verTrueFloat, x,
      obj = document.createElement("div"),
      CLASSID = [
        "{45EA75A0-A269-11D1-B5BF-0000F8051515}", // Internet Explorer Help
        "{3AF36230-A269-11D1-B5BF-0000F8051515}", // Offline Browsing Pack
        "{89820200-ECBD-11CF-8B85-00AA005B4383}"
      ];
    try {
      obj.style.behavior = "url(#default#clientcaps)"
    } catch (e) {};
    for (x = 0; x < CLASSID.length; x++) {
      try {
        browser.verIEtrue = obj.getComponentVersion(CLASSID[x], "componentid").replace(/,/g, ".");
      } catch (e) {};
      if (browser.verIEtrue) break;
    };
    verTrueFloat = parseFloat(browser.verIEtrue || "0", 10);
    browser.docModeIE = document.documentMode ||
      ((/back/i).test(document.compatMode || "") ? 5 : verTrueFloat) ||
      browser.verIE_ua;
    browser.verIE = verTrueFloat || browser.docModeIE;
  };
  return {
    isIE: browser.isIE,
    Version: browser.verIE
  };
}();
document.write('isIE: ' + ieDetector.isIE + "<br />");
document.write('IE Version Number: ' + ieDetector.Version);

Snippet uitvouwen


Antwoord 14, autoriteit 2%

Voor bijv. 10 en 11:

Je kunt js gebruiken en een klasse in html toevoegen om de standaard van voorwaardelijke opmerkingen:

 var ua = navigator.userAgent,
      doc = document.documentElement;
  if ((ua.match(/MSIE 10.0/i))) {
    doc.className = doc.className + " ie10";
  } else if((ua.match(/rv:11.0/i))){
    doc.className = doc.className + " ie11";
  }

Of gebruik een lib zoals bowser:

https://github.com/ded/bowser

Of modernizr voor functiedetectie:

http://modernizr.com/


Antwoord 15

Dit is tot de dood beantwoord, maar dit is alles wat je nodig hebt.

!!navigator.userAgent.match(/msie\s[5-8]/i)

Antwoord 16

var Browser = new function () {
    var self = this;
    var nav = navigator.userAgent.toLowerCase();
    if (nav.indexOf('msie') != -1) {
        self.ie = {
            version: toFloat(nav.split('msie')[1])
        };
    };
};
if(Browser.ie && Browser.ie.version > 9)
{
    // do something
}

Antwoord 17

Om Internet Explorer 10|11 te detecteren, kunt u dit kleine script direct na de body-tag gebruiken:

In mijn geval gebruik ik de jQuery-bibliotheek die in het hoofd is geladen.

<!DOCTYPE HTML>
<html>
<head>
    <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
</head>
<body>
    <script>if (navigator.appVersion.indexOf('Trident/') != -1) $("body").addClass("ie10");</script>
</body>
</html>

Antwoord 18

Volgens Microsoft, volgende is de beste oplossing, het is ook heel eenvoudig:

function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
    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;
}
function checkVersion()
{
    var msg = "You're not using Internet Explorer.";
    var ver = getInternetExplorerVersion();
    if ( ver > -1 )
    {
        if ( ver >= 8.0 ) 
            msg = "You're using a recent copy of Internet Explorer."
        else
            msg = "You should upgrade your copy of Internet Explorer.";
      }
    alert( msg );
}

Antwoord 19

Het meest uitgebreide JS-script dat ik heb gevonden om te controleren op versies van IE is http://www.pinlady .net/PluginDetect/IE/. De hele bibliotheek is te vinden op http://www.pinlady.net/PluginDetect/Browsers/.

Met IE10 worden voorwaardelijke instructies niet langer ondersteund.

Met IE11 bevat de user-agent geen MSIE meer. Het gebruik van de user-agent is ook niet betrouwbaar omdat dat kan worden gewijzigd.

Met behulp van het PluginDetect JS-script kunt u IE detecteren en de exacte versies detecteren door zeer specifieke en goed gemaakte code te gebruiken die gericht is op specifieke IE-versies. Dit is erg handig als je er precies om geeft met welke browserversie je werkt.


Antwoord 20

Ik raad aan om deze code niet voor de zoveelste keer te herschrijven. Ik raad je aan om de Conditionizr-bibliotheek te gebruiken (http://conditionizr.com/) die in staat is om te testen voor specifieke IE versies evenals andere browsers, besturingssystemen en zelfs de aan- of afwezigheid van Retina-displays.

Voeg de code alleen toe voor de specifieke tests die u nodig hebt en u profiteert ook van een geteste bibliotheek die vele iteraties heeft ondergaan (en die gemakkelijk kan worden geüpgraded zonder uw code te breken).

Het sluit ook goed aan bij Modernizr, dat al die gevallen aankan waarin u beter een specifieke mogelijkheid kunt testen in plaats van een specifieke browser.


Antwoord 21

Dat vind ik wel leuk:

<script>
   function isIE () {
       var myNav = navigator.userAgent.toLowerCase();
       return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;
   }    
   var ua = window.navigator.userAgent;
   //Internet Explorer | if | 9-11
   if (isIE () == 9) {
       alert("Shut down this junk! | IE 9");
   } else if (isIE () == 10){
       alert("Shut down this junk! | IE 10");
   } else if (ua.indexOf("Trident/7.0") > 0) {
       alert("Shut down this junk! | IE 11");
   }else{
       alert("Thank god it's not IE!");
   }
</script>

Antwoord 22

Deze benadering voor het detecteren van IE combineert de sterke punten en vermijdt de zwakke punten van het antwoord van jKey met behulp van voorwaardelijke opmerkingen en het antwoord van Owen met behulp van user agents.

  • jKey’s aanpak werkt tot versie 9 en is immuun voor spoofing van gebruikersagenten in IE 8 & 9.
  • Owens aanpak kan mislukken op IE 5 & 6 (rapportage 7) en is gevoelig voor UA-spoofing, maar het kan IE-versies >= 10 detecteren (nu ook 12, die het antwoord van Owen dateren).

    // ----------------------------------------------------------
    // A short snippet for detecting versions of IE
    // ----------------------------------------------------------
    // If you're not in IE (or IE version is less than 5) then:
    //     ie === undefined
    // Thus, to detect IE:
    //     if (ie) {}
    // And to detect the version:
    //     ie === 6 // IE6
    //     ie > 7 // IE8, IE9 ...
    // ----------------------------------------------------------
    var ie = (function(){
        var v = 3,
            div = document.createElement('div'),
            all = div.getElementsByTagName('i');
        while (
            div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
            all[0]
        );
        if (v <= 4) { // Check for IE>9 using user agent
            var match = navigator.userAgent.match(/(?:MSIE |Trident\/.*; rv:|Edge\/)(\d+)/);
            v = match ? parseInt(match[1]) : undefined;
        }
        return v;
    }());
    

Dit kan worden gebruikt om nuttige klassen in te stellen voor uw document dat de IE-versie bevat:

   if (ie) {
        document.documentElement.className += ' ie' + ie;
        if (ie < 9)
            document.documentElement.className += ' ieLT9';
    }

Houd er rekening mee dat het de compatibiliteitsmodus detecteert die wordt gebruikt, als IE zich in de compatibiliteitsmodus bevindt. Merk ook op dat de IE-versie vooral nuttig is voor oudere versies (<10); hogere versies voldoen meer aan de standaarden en het is waarschijnlijk beter om in plaats daarvan te controleren op functies met zoiets als modernizr.js.


Antwoord 23

Ik heb hiervoor een handig onderstrepingsteken gemaakt.

_.isIE();        // Any version of IE?
_.isIE(9);       // IE 9?
_.isIE([7,8,9]); // IE 7, 8 or 9?

_.mixin({
  isIE: function(mixed) {
    if (_.isUndefined(mixed)) {
      mixed = [7, 8, 9, 10, 11];
    } else if (_.isNumber(mixed)) {
      mixed = [mixed];
    }
    for (var j = 0; j < mixed.length; j++) {
      var re;
      switch (mixed[j]) {
        case 11:
          re = /Trident.*rv\:11\./g;
          break;
        case 10:
          re = /MSIE\s10\./g;
          break;
        case 9:
          re = /MSIE\s9\./g;
          break;
        case 8:
          re = /MSIE\s8\./g;
          break;
        case 7:
          re = /MSIE\s7\./g;
          break;
      }
      if (!!window.navigator.userAgent.match(re)) {
        return true;
      }
    }
    return false;
  }
});
console.log(_.isIE());
console.log(_.isIE([7, 8, 9]));
console.log(_.isIE(11));
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

Snippet uitvouwen


Antwoord 24

of gewoon

//   IE 10: ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)'; 
//   IE 11: ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko'; 
// Edge 12: ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0'; 
// Edge 13: ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586'; 
var isIE = navigator.userAgent.match(/MSIE|Trident|Edge/)
var IEVersion = ((navigator.userAgent.match(/(?:MSIE |Trident.*rv:|Edge\/)(\d+(\.\d+)?)/)) || []) [1]

Antwoord 25

Ik realiseer me dat ik een beetje laat ben voor het feest hier, maar ik was op zoek naar een eenvoudige eenregelige manier om feedback te geven over of een browser IE is en welke versie vanaf 10 het was. Ik heb dit niet gecodeerd voor versie 11, dus misschien is daarvoor een kleine wijziging nodig.

Dit is echter de code, het werkt als een object dat een eigenschap en een methode heeft en vertrouwt op objectdetectie in plaats van het navigatorobject te schrapen (wat enorm gebrekkig is omdat het kan worden vervalst).

var isIE = { browser:/*@cc_on!@*/false, detectedVersion: function () { return (typeof window.atob !== "undefined") ? 10 : (typeof document.addEventListener !== "undefined") ? 9 : (typeof document.querySelector !== "undefined") ? 8 : (typeof window.XMLHttpRequest !== "undefined") ? 7 : (typeof document.compatMode !== "undefined") ? 6 : 5; } };

Het gebruik is isIE.browsereen eigenschap die een boolean retourneert en vertrouwt op voorwaardelijke opmerkingen van de methode isIE.detectedVersion()die een getal tussen 5 en 10 retourneert. Ik ga ervan uit dat alles lager dan 6 en je bent in een serieus old-schoolgebied en je zult iets vleziger zijn dan een oneliner en iets hoger dan 10 en je bent in een nieuwer gebied. Ik heb iets gelezen over IE11 die voorwaardelijke opmerkingen niet ondersteunt, maar ik heb het niet volledig onderzocht, dat is misschien voor een latere datum.

Hoe dan ook, zoals het is, en voor een one-liner, zal het de basis van IE-browser- en versiedetectie dekken. Het is verre van perfect, maar het is klein en gemakkelijk aan te passen.

Alleen ter referentie, en als iemand enige twijfel heeft over hoe dit daadwerkelijk te implementeren, dan zou de volgende voorwaarde moeten helpen.

var isIE = { browser:/*@cc_on!@*/false, detectedVersion: function () { return (typeof window.atob !== "undefined") ? 10 : (typeof document.addEventListener !== "undefined") ? 9 : (typeof document.querySelector !== "undefined") ? 8 : (typeof window.XMLHttpRequest !== "undefined") ? 7 : (typeof document.compatMode !== "undefined") ? 6 : 5; } };
/* testing IE */
if (isIE.browser) {
  alert("This is an IE browser, with a detected version of : " + isIE.detectedVersion());
}

Antwoord 26

Het detecteren van IE en zijn versies kan niet eenvoudiger, en alles wat je nodig hebt is een beetje native/vanilla Javascript:

var uA = navigator.userAgent;
var browser = null;
var ieVersion = null;
if (uA.indexOf('MSIE 6') >= 0) {
    browser = 'IE';
    ieVersion = 6;
}
if (uA.indexOf('MSIE 7') >= 0) {
    browser = 'IE';
    ieVersion = 7;
}
if (document.documentMode) { // as of IE8
    browser = 'IE';
    ieVersion = document.documentMode;
}

En dit is een manier om het te gebruiken:

if (browser == 'IE' && ieVersion <= 9) 
    document.documentElement.className += ' ie9-';

.

Werkt in alle IE-versies, inclusief hogere versies in lagere compatibiliteitsweergave/modus, en documentModeis eigendom van IE.


Antwoord 27

Als u de IE Browser-versie moet selecteren, kunt u onderstaande code volgen. Deze code werkt goed voor versie IE6 tot IE11

<!DOCTYPE html>
<html>
<body>
<p>Click on Try button to check IE Browser version.</p>
<button onclick="getInternetExplorerVersion()">Try it</button>
<p id="demo"></p>
<script>
function getInternetExplorerVersion() {
   var ua = window.navigator.userAgent;
        var msie = ua.indexOf("MSIE ");
        var rv = -1;
        if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))      // If Internet Explorer, return version number
        {               
            if (isNaN(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))))) {
                //For IE 11 >
                if (navigator.appName == 'Netscape') {
                    var ua = navigator.userAgent;
                    var re = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
                    if (re.exec(ua) != null) {
                        rv = parseFloat(RegExp.$1);
                        alert(rv);
                    }
                }
                else {
                    alert('otherbrowser');
                }
            }
            else {
                //For < IE11
                alert(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))));
            }
            return false;
        }}
</script>
</body>
</html>

Antwoord 28

Window draait IE10 wordt automatisch geüpdatet naar IE11+ en wordt gestandaardiseerd W3C

Tegenwoordig hoeven we IE8 niet meer te ondersteunen-

   <!DOCTYPE html>
    <!--[if lt IE 9]><html class="ie ie8"><![endif]-->
    <!--[if IE 9]><html class="ie ie9"><![endif]-->
    <!--[if (gt IE 9)|!(IE)]><!--><html><!--<![endif]-->
    <head>
        ...
        <!--[if lt IE 8]><meta http-equiv="Refresh" content="0;url=/error-browser.html"><![endif]--
        ...
    </head>

Antwoord 29

var isIE9OrBelow = function()
{
   return /MSIE\s/.test(navigator.userAgent) && parseFloat(navigator.appVersion.split("MSIE")[1]) < 10;
}

Antwoord 30

if (!document.addEventListener) {
    // ie8
} else if (!window.btoa) {
    // ie9
}
// others

Other episodes