Как определить браузер с помощью Javascript?

Пользователь

от hoyt.jerde , в категории: JavaScript , 2 года назад

Как определить браузер с помощью Javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jeremy_larkin , 2 года назад

@hoyt.jerde На бэкенде обычно для этого используют заголовок User-Agent и по нему определяют браузере. Как вариант в Javascript использовать глобальный объект window:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Opera 8.0+
var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;

// Firefox 1.0+
var isFirefox = typeof InstallTrigger !== 'undefined';

// Safari 3.0+ "[object HTMLElementConstructor]" 
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && window['safari'].pushNotification));

// Internet Explorer 6-11
var isIE = /*@cc_on!@*/false || !!document.documentMode;

// Edge 20+
var isEdge = !isIE && !!window.StyleMedia;

// Chrome 1 - 79
var isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);

// Edge основываясь на Chromium движок
var isEdgeChromium = isChrome && (navigator.userAgent.indexOf("Edg") != -1);

// Blink
var isBlink = (isChrome || isOpera) && !!window.CSS;


На самом деле на Javascript уже множество написанных библиотек готовых и Вы можете использовать одну из них или использовтаь метод описанный вверху и адаптировав его под нужный браузер.

Пользователь

от buster , год назад

@hoyt.jerde 

Вы можете использовать объект navigator для определения браузера в JavaScript. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
if (navigator.userAgent.indexOf('Chrome') !== -1) {
  console.log('Google Chrome');
} else if (navigator.userAgent.indexOf('Firefox') !== -1) {
  console.log('Mozilla Firefox');
} else if (navigator.userAgent.indexOf('Safari') !== -1) {
  console.log('Apple Safari');
} else if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
  console.log('Internet Explorer');
} else {
  console.log('Other');
}


Обратите внимание, что этот код может не работать для некоторых браузеров, поэтому рекомендуется использовать библиотеку, такую как bowser, для более точной идентификации браузера.

1
2
const browser = bowser.getParser(navigator.userAgent);
console.log(browser.getBrowserName());