Если вам действительно нужно знать, какой браузер они используют, вам в основном нужно смотреть на строку userAgent
(хотя иногда вы можете сделать вывод о браузере, взглянув на пару непонятные черты). Просто имейте в виду, что некоторые браузеры позволяют пользователю изменить это и обмануть вас. :-)
Но определение браузера не в моде по уважительным причинам. Вместо этого, как вы говорите, вы хотите обнаружить функции, которые вы ищете. Это надежнее и меньше работы. То, что IE не поддерживал, например, addEventListener
, не означает, что он никогда не будет (и на самом деле IE9 поддерживает). Таким образом, вместо этого вы выполняете обнаружение функций, что защищает код в будущем.
Вот конкретный пример: предположим, вы хотите знать (как я сделал для моего плагина jQuery для place5) поддерживает ли браузер placeholder
атрибут. Вы можете использовать обнаружение браузера и вести список браузеров, в которых версии поддерживаются или не поддерживаются, что беспорядочно и к чему вам нужно постоянно возвращаться, и т. д., и т. д., или вы можете сделать это:
if ("placeholder" in document.createElement("input")) {
// The browser supports the attribute
}
else {
// It doesn't
}
...и вы сделали.
На этой странице есть отличный набор функциональных тестов, поддерживаемых кангакс. Существует также библиотека под названием Modernizr, которая выполняет функции обнаружения, мультимедийные запросы и многое другое. Если вы используете jQuery, в него встроено определение некоторых функций через jQuery.support
. В этой статьи.
person
T.J. Crowder
schedule
09.10.2011