Ermitteln Sie die IE-Version (vor v9) in JavaScript

Ich möchte Benutzer unserer Website auf eine Fehlerseite leiten, wenn sie eine Version von verwendenInternet Explorer vor v9. Es lohnt sich einfach nicht, unsere Zeit und unser Geld zu unterstützenIE pre-v9. Benutzer aller anderen Nicht-IE-Browser sind in Ordnung und sollten nicht zurückgewiesen werden. Hier ist der vorgeschlagene 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
    }
}

Wird dieser Code den Trick machen?

Um ein paar Kommentare abzuwenden, die wahrscheinlich auf mich zukommen werden:

Ja, ich weiß, dass Benutzer ihre fälschen könnenuseragent Zeichenfolge. Ich mache mir keine Sorgen.Ja, ich weiß, dass Programmierer es vorziehen, Feature-Unterstützung anstelle von Browser-Unterstützung auszukundschaften, aber ich halte diesen Ansatz in diesem Fall nicht für sinnvoll. Ich weiß bereits, dass alle (relevanten) Nicht-IE-Browser die Funktionen unterstützen, die ich benötige, und das allespre-v9 IE Browser nicht. Die Überprüfung von Merkmal zu Merkmal auf der gesamten Website wäre eine Verschwendung.Ja, ich weiß, dass jemand versucht, mit auf die Website zuzugreifenIE v1 (oder> = 20) würde "badBrowser" nicht auf "true" setzen und die Warnseite würde nicht richtig angezeigt. Das ist ein Risiko, das wir eingehen wollen.Ja, ich weiß, dass Microsoft "bedingte Kommentare" hat, die zur genauen Erkennung der Browserversion verwendet werden können. IE unterstützt ab keine bedingten Kommentare mehrIE 10und macht diesen Ansatz absolut nutzlos.

Gibt es noch andere offensichtliche Probleme, die Sie beachten sollten?

Antworten auf die Frage(30)

Ihre Antwort auf die Frage