JavaScript: определяем броузер
определяем броузер пользователя с помощью JavaScript

Кажется, что узнать, в каком броузере находится текущая сессия пользователя, довольно просто. Ведь именно для этого предназначено свойство userAgent
объекта navigator
Но выражение:
console.log(window.navigator.userAgent)
вернет строку, подобную:
Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Mobile Safari/537.36
Таким образом, мы видим, что userAgent
возвращает полную строку пользовательского агента, которую броузер предоставляет в HTTP-заголовках.
Конечно, можно написать функцию, которая позволит определить броузер пользователя:
function detectBrowser() {
const userAgent = navigator.userAgent.toLowerCase();
if (userAgent.indexOf('firefox') != -1) {
return 'Firefox';
} else if (userAgent.indexOf('chrome') != -1) {
return 'Chrome';
} else if (userAgent.indexOf('safari') != -1) {
return 'Safari';
} else if (userAgent.indexOf('opera') != -1 || userAgent.indexOf('opr') != -1) {
return 'Opera';
} else if (userAgent.indexOf('msie') != -1 || userAgent.indexOf('trident') != -1) {
return 'Internet Explorer';
} else {
return 'Unknown';
}
}
console.log(detectBrowser());
Однако, определение клиентского броузера, построенное на использовании navigator.userAgent
зачастую вводит нас в заблуждение, так как пользователь может самостоятельно подменить получаемую строку или использовать стороннее расширение, влияющее на результат.
Спасибо за внимание.