Функция обнаружения пытается определить, если существует функция. Например, если браузер пользователя поддерживает LocalStorage или API геолокации.
if (navigator.geolocation) {
// geolocation possible.. do some stuff
}
Функция вывода предполагает, что, поскольку вы обнаружили одну функцию, которую вы можете использовать другие функции. Например, если вы обнаружите API геолокации, возможно, вы предполагаете, что ваш пользователь находится в современном браузере, и теперь теперь доступен LocalStorage. Обычно плохо предположить, поэтому вам гораздо лучше, если вы используете функцию обнаружения объектов для каждой функции, которую хотите использовать, и иметь стратегию резервного копирования в случае, если функция недоступна. Даже если у пользователя есть современный браузер с геолокацией, это не значит, что они позволят вашему приложению использовать его, поэтому планируйте его соответствующим образом.
Строка агента пользователя просто читает тупую маленькую строку, которую отправляет каждый браузер, а затем вы можете сравнить эту строку с некоторыми известными вами браузерами. Как правило, это очень старый способ делать вещи и легко подделываться, поэтому у вас должна быть очень конкретная причина, чтобы идти по этому маршруту (может быть, в среде тестирования нагрузки или что-то еще). Смотрите вики на тему http://en.wikipedia.org/wiki/User_agent
Вы бы получить доступ к нему в JavaScript похож на:
navigator.userAgent
Все они могут быть легко просмотрены в Интернете, нет? Это должен быть первый шаг, и что неясно *, то * может сделать хороший вопрос переполнения стека. –
Также так много ресурсов, когда обнаружение функции Google или агента пользователя, например [обнаружение браузера и обнаружение функции] (http://stackoverflow.com/q/1294586) –