Вопрос по javascript, html – Определите, какой браузер используется, используя JavaScript

2

У меня проблема с определением браузеров.

Я пытался использоватьnavigator и хорошо, это не помогло.

я использовалalert(navigator.appName); определить браузер и я в настоящее время используюGoogle Chrome, когда появляется всплывающее окно, оно отображаетсяMozilla, но вMozilla работает нормально и сMozilla Сам.

есть ли проблема с кодом? или это какая-то ошибка?

+1 для обнаружения функции. Прочитайте Q & A здесь:stackoverflow.com/questions/1294586/… David Gorsline
Почему вы пытаетесь прослушать браузер, если я могу спросить? PeeHaa
Использование строк агента пользователя для обнаружения браузеров очень ненадежно, так как эту строку можно легко изменить. Я рекомендую проверить для конкретных поставщиков значения. Недавнее творение было размещено здесь:How to detect Safari, Chrome, IE, Firefox and Opera browser? Rob W
Лучшее решение: просто кодируйте таким образом, чтобы вам не нужно было "анализировать браузер" JakeParis
почему вы не обнаруживаете? Daniel A. White

Ваш Ответ

6   ответов
0

который должен ответить на все ваши вопросы:

http://www.quirksmode.org/js/detect.html

7
navigator.sayswho= (function(){
    var N= navigator.appName, ua= navigator.userAgent, tem,
    M= ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*([\d\.]+)/i);
    if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
    M= M? [M[1], M[2]]:[N, navigator.appVersion, '-?'];
    return M.join(' ');
})();

alert(navigator.sayswho)
imgur.com/a/fNWJE - пожалуйста, смотрите вывод IE в первом снимке экрана, Safari во втором снимке экрана. Можете ли вы сделать скрипт немного более обновленным. Так что он может вернуть true или false, если браузер SAFARI или IE какой-либо версии?
2

нет проблем или ошибок. Chrome представляет собой Mozilla. Посмотрите это для точных строк User Agent, которые дает Chrome.

http://www.useragentstring.com/pages/useragentstring.php?name=Chrome

Вот некоторые примеры:

Chrome 20.0.1092.0

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6

Chrome 20.0.1090.0

Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
3

если вам нужно простое короткое решение, попробуйте использовать это:

function getBrowser() {
  if( navigator.userAgent.indexOf("Chrome") != -1 ) {
    return "Chrome";
  } else if( navigator.userAgent.indexOf("Opera") != -1 ) {
    return "Opera";
  } else if( navigator.userAgent.indexOf("MSIE") != -1 ) {
    return "IE";
  } else if( navigator.userAgent.indexOf("Firefox") != -1 ) {
    return "Firefox";
  } else {
    return "unknown";
  }
}
Error: User Rate Limit Exceeded
0

wikipedia MDC не считается хорошей практикой. Что делать, если есть новый браузер, не доступный публично? Обнаружение должно быть направлено на функции, а не на браузеры. Браузеры могут измениться, устарели, функции сохраняются.

Просто для полноты и духа приключений - есть способ проверить конкретный объект JavaScript:

isChrome = function() { return !!(window.chrome);}
isOpera = function() { return !!(window.opera);}

Для IE есть эта волшебная штука под названием условная компиляцияSO Question и материалы об этомMSDN JSkit.

0

navigator.appVersion, это должно быть более конкретным.

Похожие вопросы