Ich möchte Benutzer unserer Website auf eine Fehlerseite leiten, wenn sie eine Version von verwenden Internet Explorer
vor v9. Es ist unsere Zeit und unser Geld einfach nicht wert, sie zu unterstützen IE 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 Zweck erfüllen?
Um ein paar Kommentare abzufangen, die wahrscheinlich auf mich zukommen werden:
- Ja, ich weiß, dass Benutzer ihre fälschen können
useragent
Schnur. Ich mache mir keine Sorgen. - Ja, ich weiß, dass Programmierprofis es vorziehen, Feature-Support statt Browser-Typ zu erschnüffeln, aber ich glaube nicht, dass dieser Ansatz in diesem Fall sinnvoll ist. Ich weiß bereits, dass alle (relevanten) Nicht-IE-Browser die Funktionen unterstützen, die ich brauche, und das alles
pre-v9 IE
Browser nicht. Es wäre eine Verschwendung, Feature für Feature auf der gesamten Website zu überprüfen. - Ja, ich weiß, dass jemand versucht, auf die Website zuzugreifen
IE v1
(oder >= 20) würde ‘badBrowser’ nicht auf true setzen und die Warnseite würde nicht richtig angezeigt werden. Das ist ein Risiko, das wir bereit sind einzugehen. - Ja, ich weiß, dass Microsoft “bedingte Kommentare” hat, die zur genauen Erkennung der Browserversion verwendet werden können. IE unterstützt ab jetzt keine bedingten Kommentare mehr
IE 10
was diesen Ansatz absolut nutzlos macht.
Irgendwelche anderen offensichtlichen Probleme, die es zu beachten gilt?
“Es ist unsere Zeit und unser Geld einfach nicht wert, IE vor v9 zu unterstützen”. Ich wünschte ich könnte das machen.
– Benutzer377628
9. Juni 2012 um 22:15 Uhr
Basierend auf Punkt [2] Ich werde Modernizr nicht vorschlagen (en.wikipedia.org/wiki/Modernizr) – jeder muss irgendwo eine Grenze in den Sand ziehen – aber IE9 scheint eine hohe Linie zu sein
– amelwin
9. Juni 2012 um 22:21 Uhr
Bedingte Kommentare sind nur normale Kommentare. Nur IE interpretiert sie als besondere. IE10+ wird das nicht mehr tun.
–Andreas
9. Juni 2012 um 22:56 Uhr
Bedingte Kommentare werden von IE 10 genauso behandelt wie Nicht-IE-Browser. Sie sind gültige HTML-Kommentare und werden daher als solche behandelt. Ich stimme Andreas zu und denke, dass bedingte Kommentare der richtige Weg sind.
– Tim unten
9. Juni 2012 um 23:00 Uhr
Die offizielle Dokumentation, die besagt, dass IE10+ keine bedingten Kommentare unterstützt: blogs.msdn.com/b/ie/archive/2011/07/06/… – Danke an: stackoverflow.com/a/9900331/320399
– hell
18. Dezember 2012 um 19:51 Uhr