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