2012-05-08 2 views
2

У меня проблема в определении браузеров.Определите, какой браузер используется, используя javascript

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

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

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

+1

Лучшее решение: просто введите код, который вам не нужен, чтобы «браузерный нюх» – JakeParis

+0

почему вы не обнаруживаете? –

+0

Почему вы пытаетесь обнюхивать браузер, если я могу спросить? – PeeHaa

ответ

2

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

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

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

Хром 20.0.1092.0

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536,6 (KHTML, как Gecko) хром/20.0 .1092.0 Сафари/536,6

Хром 20.0.1090.0

Mozilla/5 +0,0 (Windows NT 6.2) AppleWebKit/536,6 (KHTML, как Gecko) Chrome/Safari 20.0.1090.0/536,6

+0

Ссылка больше не работает. – Mox

+1

@Mox Я исправил его. – JakeParis

0

Попробуйте navigator.appVersion, он должен быть более конкретным.

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"; 
    } 
} 
+0

Можете ли вы убедиться, что ваш скрипт также работает, если он используется в Android или iPhone или Windows Phone или других браузерах для Linux? – YumYumYum

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) 
+0

http://imgur.com/a/fNWJE - см. Вывод IE в первом снимке экрана, Safari во втором снимке экрана. Не могли бы вы сделать сценарий немного более обновленным. Чтобы он мог возвращать true или false, если браузер SAFARI или IE любых версий? – YumYumYum

0

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

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

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

Для IE есть эта магия штуковина называется условной компиляции SO Question и материалы об этом MSDNJSkit ,

Смежные вопросы