私たちのWebサイトのユーザーがInternet Explorer
v9より前のバージョンを使用している場合、エラーページに移動させたいのですが。支援するのに私たちの時間とお金の価値はありません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に設定せず、警告ページが適切に表示されないことを知っています。それは私たちが喜んで取るリスクです。 - はい、私はマイクロソフトがブラウザの正確なバージョン検出に使用できる「条件付きコメント」を持っていることを知っています。IEはから条件付きコメントをサポートしなくなったため
IE 10
、このアプローチはまったく役に立たなくなりました。
注意すべき他の明らかな問題はありますか?