JavaScript: Как узнать, является ли браузер пользователя Chrome? - PullRequest
197 голосов
/ 30 декабря 2010

Мне нужна функция, возвращающая логическое значение, чтобы проверить, является ли браузер Chrome .

Как мне создать такую ​​функциональность?

Ответы [ 13 ]

0 голосов
/ 06 марта 2019

Чтобы узнать названия различных настольных браузеров (Firefox, IE, Opera, Edge, Chrome).Кроме Safari.

function getBrowserName() {
  var browserName = '';
  var userAgent = navigator.userAgent;
  (typeof InstallTrigger !== 'undefined') && (browserName = 'Firefox');
  ( /* @cc_on!@*/ false || !!document.documentMode) && (browserName = 'IE');
  (!!window.chrome && userAgent.match(/OPR/)) && (browserName = 'Opera');
  (!!window.chrome && userAgent.match(/Edge/)) && (browserName = 'Edge');
  (!!window.chrome && !userAgent.match(/(OPR|Edge)/)) && (browserName = 'Chrome');

  /**
   * Expected returns
   * Firefox, Opera, Edge, Chrome
   */
  return browserName;
}

Работает в следующих версиях браузера:

Opera - 58.0.3135.79
Firefox - 65.0.2 (64-bit)
IE - 11.413.15063 (JS Fiddle no longer supports IE just paste in Console)
Edge - 44.17763.1.0
Chrome - 72.0.3626.121 (Official Build) (64-bit)

Просмотреть суть здесь и скрипку здесь

Оригинальный фрагмент кода больше не работал для Chrome, и я забыл, где я его нашел.Раньше у него было сафари, но у меня больше нет доступа к сафари, поэтому я не могу больше его проверять.

Только коды Firefox и IE были частью оригинального фрагмента.и Хром прямо вперед.У них есть различия в userAgent.OPR существует только в Opera.Edge существует только в Edge.Поэтому, чтобы проверить Chrome, этих строк не должно быть.

Что касается Firefox и IE, я не могу объяснить, что они делают.

Я добавлю эту функциональность в пакет я пишу

0 голосов
/ 08 января 2019

Проверьте это: Как определить браузер Safari, Chrome, IE, Firefox и Opera?

В вашем случае: var isChrome = !! window.chrome && (!! window.chrome.webstore || !! window.chrome.runtime);

0 голосов
/ 07 мая 2015

все ответы неверны. «Opera» и «Chrome» одинаковы во всех случаях.

(отредактированная часть)

вот правильный ответ

if (window.chrome && window.chrome.webstore) {
    // this is Chrome
}
...