Ich möchte Benutzer unserer Website auf eine Fehlerseite Internet Explorer
leiten, wenn sie eine Version vor Version 9 verwenden. Es ist einfach nicht unsere Zeit und unser Geld wert, um zu unterstützen IE pre-v9
. Benutzer aller anderen Nicht-IE-Browser sind in Ordnung und sollten nicht zurückgeworfen 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 mir wahrscheinlich in den Weg kommen werden:
- Ja, ich weiß, dass Benutzer ihre
useragent
Zeichenfolge fälschen können . Ich bin nicht besorgt. - Ja, ich weiß, dass Programmierprofis es vorziehen, die Unterstützung von Funktionen anstelle des Browsertyps auszuspionieren, 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 dass alle
pre-v9 IE
Browser dies nicht tun. Das Überprüfen von Merkmal zu Merkmal auf der gesamten Website wäre eine Verschwendung. - Ja, ich weiß, dass jemand, der versucht, mit
IE v1
(oder> = 20) auf die Site zuzugreifen , 'badBrowser' nicht auf true gesetzt hat und die Warnseite nicht richtig angezeigt wird. Das ist ein Risiko, das wir eingehen wollen. - Ja, ich weiß, dass Microsoft "bedingte Kommentare" hat, die zur präzisen Erkennung von Browserversionen verwendet werden können. IE unterstützt ab sofort keine bedingten Kommentare mehr
IE 10
, was diesen Ansatz absolut nutzlos macht.
Gibt es noch andere offensichtliche Probleme, die Sie beachten sollten?