Я уже обнаружил функцию обнаружения определенной функции, чтобы решить, могу ли я ее использовать или мне нужно использовать обход. Но, к сожалению, я обнаружил, что IE имеет некоторые ошибки в этой функции, которые делают ее бесполезной для меня, даже когда она присутствует. Поэтому, несмотря на то, что он передает обнаружение функции, мне нужно обнаружить, что браузер является IE, поэтому я не использую эту функцию, если это IE.
Я попытался выяснить, могу ли я обнаружить функцию обнаружения фактического поведения с ошибкой (что было бы лучше всего, потому что оно адаптировалось бы, если IE будет исправлять поведение в будущем), но, похоже, нет никакого способа сделать это что (вопрос другого вопроса). Это означает, что я остался с попыткой окончательно определить, что это браузер IE, поэтому я могу избежать ошибки. Я не хочу использовать строку useragent, так как все мы знаем, что она легко подделана и может быть легко ошибочной.
Итак, я хотел бы сделать обнаружение функции, будь то браузер IE или нет.
Подход, который у меня есть до сих пор, таков:
var isIE = (document.body.attachEvent && window.ActiveXObject);
Это выглядит, если присутствует метод attachEvent()
и присутствует поддержка ActiveXObject
. Мне нужно было сделать больше, чем просто проверку attachEvent
, потому что Opera поддерживает attachEvent
.
Является ли это надежным способом обнаружения IE? Есть ли лучшие способы?
Пожалуйста, не отвечайте, я действительно не должен делать обнаружение браузера, но вместо этого должен использовать обнаружение функции. Я уже делаю обнаружение функций, но это вызвало проблему, потому что браузер, который "поддерживает" функцию и, таким образом, пропускает обнаружение функции, оказывается настолько ошибочным, что я не могу использовать эту функцию в этом браузере. Итак, теперь я должен обнаружить багги-браузер.
Если вы хотите узнать больше о конкретной ситуации, в которой это используется, описано в этом другом вопросе.