質問: Angular使っています。 対応していないブラウザからアクセスされた時、普通はUAなどを見て、ブラックリスト式に弾くと思いますが、対応していないブラウザは全てエラーにしたいと思っています。 そこでAngularの初期化プロセスがコケたらエラーにすればよいのではないかと考えました。 Angularで初期化に失敗した時に検出する方法はありますでしょうか?
回答: 初期化前にwindow.onerrorイベントをハンドルしておいて、初期化完了時にangular.Module.runでイベントを解除するというのではどうでしょう。 ただ、初期化プロセスでエラーが出るかどうかだけで、対応しているブラウザの判断をするのは難しいのではないでしょうか。(IE8ならば初期化プロセスで検出可能ですが) 初期化はうまくいくけど実行中に落ちるケースや、CSS3やHTML5が提供する機能の一部に対応していないケースというのもあるかもしれません。 そこで、Modernizrというツールを使ってみるのはどうでしょうか。 例えば、EcmaScript5の機能を持っているかどうかチェックするのであれば でES5にチェックを入れてダウンロードし、次のようなコードでチェックすることができます。 ``` if (!Modernizr.es5) { alert("対応していないブラウザです"); } ```