Internet Explorer
v9 より前のバージョンの を使用している場合、Web サイトのユーザーをエラー ページにバウンスさせたいと考えています。サポートに時間とお金を費やすだけの価値はありませんIE pre-v9
。他のすべての非 IE ブラウザーのユーザーは問題なく、バウンスされるべきではありません。提案されたコードは次のとおりです。
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
}
}
このコードでうまくいくでしょうか?
おそらく私のところに来るであろういくつかのコメントを避けるために:
- はい、ユーザーが自分の文字列を偽造できることを知ってい
useragent
ます。私は気にしません。 - はい、プログラミングのプロがブラウザーの種類ではなく機能のサポートを嗅ぎ分けることを好むことは知っていますが、この場合、このアプローチは意味がないと思います。IE 以外のすべての (関連する) ブラウザーが必要な機能をサポートしていて、すべての
pre-v9 IE
ブラウザーがサポートしていないことは既にわかっています。サイト全体で機能ごとにチェックするのは無駄です。 - はい、誰かが
IE v1
(または >= 20) を使用してサイトにアクセスしようとすると、'badBrowser' が true に設定されず、警告ページが正しく表示されないことがわかっています。それは私たちが喜んで引き受けるリスクです。 - はい、Microsoft には、ブラウザのバージョンを正確に検出するために使用できる「条件付きコメント」があることを知っています。IE は の時点で条件付きコメントをサポートしなくなったため
IE 10
、このアプローチはまったく役に立たなくなりました。
他に注意すべき明らかな問題はありますか?