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 10
und macht diesen Ansatz absolut nutzlos.Gibt es noch andere offensichtliche Probleme, die Sie beachten sollten?