2016-04-03 3 views
0

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

navigator.sayswho= (function(){ 
    var ua= navigator.userAgent, tem, 
    M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; 
    if(/trident/i.test(M[1])){ 
     tem= /\brv[ :]+(\d+)/g.exec(ua) || []; 
     return 'IE '+(tem[1] || ''); 
    } 
    if(M[1]=== 'Chrome'){ 
     tem= ua.match(/\b(OPR|Edge)\/(\d+)/); 
     if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera'); 
    } 
    M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?']; 
    if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]); 
    return M.join(' '); 
})(); 

Код здесь: How can you detect the version of a browser?

Мне интересно, что это делает под капотом. Какой файл в файловой системе mu javascript открыт, чтобы прочитать сведения о браузере, если пользователь использует Chrome, например?

+1

Сценарий не открывает файлы. Он извлекает значения, хранящиеся в свойствах глобального объекта '' navigator' (https://developer.mozilla.org/en-US/docs/Web/API/Window/navigator), которые задаются самим браузером. (Хотя, по крайней мере, [одно из свойств] (https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID/userAgent) больше не гарантировано имеет значение.) –

+0

Oh Понимаю. Это подход java-сценария подхода. Теперь я думаю об обратном ... как бы я узнал, какой браузер я использую, не используя javascript (интернет вообще). Я ищу файл, который инициализирует объект навигатора. Конечно, должен быть файл, который инициализирует объект навигатора в файловой системе, чтобы браузер знал, что это за имя. – sanjihan

+0

Это будет зависеть от браузера и того, как он построен и настроен. Вы можете найти настройки в системах вашей системы (например, в реестре) или в файле конфигурации рядом с исполняемым файлом браузера ('.exe' и т. Д.). Также возможно, что эти значения являются константами, скомпилированными в сам исполняемый файл. –

ответ

1

Атрибут navigator находится в интерфейсе окна и является стандартным интерфейсом только для чтения, который находится в браузерах.

Посмотрите на спецификации здесь: https://www.w3.org/TR/html5/webappapis.html#navigator

Атрибут навигатор оконного интерфейса должен возвращать экземпляр интерфейса Navigator, который представляет собой личность и состояние агента пользователя (клиента), и позволяет веб-страницам регистрироваться как потенциальный протокол и обработчики контента:

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