Я знаю, что сниффинг браузеров — неправильный способ разработки сайта для нескольких браузеров. Однако мой вопрос не связан с разработкой сайта, который хорошо работает для каждого браузера.
Я хочу предложить пользователю возможность установить сайт как веб-приложение, если браузер Google Chrome или Firefox 4+, как виджет, если это Opera, как расширение, если это Safari... и так далее.
В основном я хочу скользить в div с кнопкой, предлагающей такую установку. Нет смысла показывать решение веб-приложения, если браузер, например, Safari, поскольку Safari не поддерживает его.
Итак, как мне сделать это по-хорошему?
Я нашел это на основе функций, а не пользовательского агента
Безопасный функциональный способ обнаружения Google Chrome с помощью Javascript?
var is = {
ff: window.globalStorage,
ie: document.all && !window.opera,
ie6: !window.XMLHttpRequest,
ie7: document.all && window.XMLHttpRequest && !XDomainRequest && !window.opera,
ie8: document.documentMode==8,
opera: Boolean(window.opera),
chrome: Boolean(window.chrome),
safari: window.getComputedStyle && !window.globalStorage && !window.opera
}
Кажется, он работает для моих нужд, он короткий, не громоздкий и более или менее безопасный для подделок.