特定の機能を使用できるかどうか、または回避策を使用する必要があるかどうかを判断するために、特定の機能の機能検出を既に行っています。しかし、残念なことに、IE にはその機能にいくつかのバグがあり、それが存在していても役に立たないことがわかりました。したがって、機能の検出に合格しても、ブラウザーが IE であることを検出する必要があるため、IE の場合はその機能を使用しません。
実際のバグのある動作で機能検出を実行できるかどうかを確認しようとしましたが (これは、IE が将来動作を修正する場合に適応するため、最適です)、それを行う方法はないようです (件名別の質問の)。つまり、バグのある機能を回避できるように、それが IE ブラウザーであることを最終的に特定しようとすることになります。 useragent 文字列は簡単にスプーフィングされ、簡単に間違ってしまう可能性があることは誰もが知っているので、私は使いたくありません。
そこで、IE ブラウザかどうかの機能検出を行いたいと思います。
これまでのアプローチは次のとおりです。
var isIE = (document.body.attachEvent && window.ActiveXObject);
これは、attachEvent()
メソッドが存在するかどうか、およびActiveXObject
サポートが存在するかどうかを確認します。attachEvent
OperaはattachEvent
.
これは IE を検出する信頼できる方法ですか? より良い方法はありますか?
I really should do browser detection, but should use feature detection instead. で応答しないでください。私はすでに機能検出を行っていますが、その機能を「サポート」していて機能検出に合格するブラウザーは非常にバグが多く、そのブラウザーで機能を使用できないことが判明したため、問題が発生しました。そこで、バグのあるブラウザを検出する必要があります。
これが使用されている特定の状況について詳しく知りたい場合は、この他の質問に記載されています。