私たちのWebサイトのユーザーがInternet Explorerv9より前のバージョンを使用している場合、エラーページに移動させたいのですが。支援するのに私たちの時間とお金の価値はありません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、このアプローチはまったく役に立たなくなりました。
注意すべき他の明らかな問題はありますか?