Appcodename mozilla что это

Обновлено: 03.07.2024

Объект navigator служит для доступа к самой программе Web-обозревателя. Не путайте его с объектом window, представляющем текущее окно Web-обозревателя, и названием программы Netscape Navigator.

appCodeName

Возвращает имя кода программы Web-обозревателя. И для Internet Explorer, и для Navigator вернет строку "Mozilla". Охренительно.

appMinorVersion

Возвращает младшую цифру номера версии программы Web-обозревателя. Например, для Internet Explorer 5.0 вернет "0", а для 5.5 - "5".

Поддерживается только Internet Explorer начиная с 4.0

appName

Возвращает имя программы Web-обозревателя, например, "Netscape" или "Microsoft Internet Explorer".

appVersion

Возвращает версию программы Web-обозревателя.

browserLanguage

Возвращает код программы Web-обозревателя. Поддерживается только IE начиная с 4.0

cookieEnabled

Возвращает true, если Web-обозревателю разрешен пользователем прием cookie. Поддерживается только IE начиная с 4.0

cpuClass

Возвращает класс процессора клиентского компьютера, например, "x86" или "Alpha". Поддерживается только IE начиная с 4.0

language

Возвращает код языка программы Web-обозревателя. Поддерживается только NN начиная с 4.0

onLine

Возвращает true, если клиент в настоящее время подключен к интернету (находится в режиме on-line), и false, если отключен (off-line).

Поддерживается только IE начиная с 4.0

platform

Возвращает название клиентской платформы, например, "Win32".

systemLanguage

Возвращает код языка операционной системы клиента. Поддерживается только IE начиная с 4.0

userAgent

Возвращает строку, идентифицирующую Web-обозреватель клиента. Является комбинацией значений свойств appCodeName и appVersion.

userLanguage

То же самое, что browserLanguage.

Поддерживается только IE начиная с 4.0


Объект navigator поддерживает, кроме того, метод javaEnabled(), возвращающий true, если Web-обозревателю разрешено пользователем выполнение сценариев JavaScript.

Немного более подробно хотелось бы сказать о свойстве appVersion, а точнее о возвращаемом им значении. Все дело в том, что у IE и NN оно будет разным.

Вот какой формат будет у Navigator:

Здесь представляет собой версию Web-обозревателя, - язык программы (но может и отсутствовать), - обозначение операционной системы клиента, например, "Win96", "Win16" или "WinNT", буква "U" - американскую версию программы, а "I" - интернациональную.

У Internet Explorer формат вывода значений свойства appVersion другой:

Здесь может принимать значения "Windows 3.1", "Windows 3.11", "Windows 95" или "Windows NT".

Во всех браузерах, которые я тестировал (IE, Firefox, Chrome, Safari, Opera, Яндекс), window.navigator.appCodeName возвращает "Mozilla" . Я знаю историю о том, что веб-браузеры «угоняли» пользовательский агент, чтобы обмануть страницы, заставляя их думать, что они совместимы со всеми другими браузерами, и я согласился жить с appCodeName , просто являющимся расширением этого принципала, однако я прочитайте стандарт, и выясняется, что Сам стандарт говорит, что это будет жестко закодированное значение «Mozilla». Так что все эти браузеры на самом деле соответствуют стандартам.

Почему это значение существует? Я предполагаю, что это зарезервировано для будущего использования, но каков план?

Этот вопрос на самом деле не объясняет, потому что все, что он заявляет, это то, что он это произошло из-за того, что браузеры взломали его, что я уже понимаю, но мне больше интересно, что использовалось в прошлом или будущем.

2 ответа

NavigatorID.appCodeName всегда возвращает 'Mozilla' в любом браузере. Это свойство сохраняется только для совместимости.

Примечание. Не полагайтесь на это свойство, чтобы вернуть настоящее название продукта. Все браузеры возвращают «Mozilla» в качестве значения этого свойства.

Это похоже на NavigatorID.product , который всегда возвращает строку 'Gecko' .

Как объясняет Себастьян Г. в своем ответе, он использовался для прослушивания пользовательского агента. Это подразумевает, что в какой-то момент браузеры, не являющиеся Mozilla, не содержали Mozilla в своей строке UA. Хотя я не уверен, сколько времени прошло между браузерами на основе Mozilla / Mozilla "Mozilla" в строке UA и добавлением "Mozilla" в браузерах не-Mozilla.

Я не могу найти никакой документации о том, когда свойство appCodeName впервые стало доступно в объекте navigator (предположительно до 2000 года, так как это было упоминается в 2000 году как" давным-давно ").

Эта статья может быть вам интересна: Строки агента в популярных браузерах

Война между браузерами

Это историческая и совместимая цель.

Все началось, когда появились первые браузеры. Вскоре началась битва реализации функций (которая еще не окончена). Они хотели, чтобы разработчики использовали свой браузер.

Поскольку обнаружение функций в то время не было чем-то особенным, сниффинг в браузере был горячим методом определения возможности использования функции. Поэтому разработчики поняли и внедрили новые приятные функции только для конкретного браузера. Но затем другой поставщик браузеров также реализовал функцию , но пользователи ее не увидели, потому что это не «Mozilla» (например).

Решение? Пользователи браузера, не являющегося Mozilla, также должны увидеть эту приятную небольшую функцию и использовать веб-сайт по назначению - , чтобы они все начали врать .

Это в значительной степени это в двух словах. Это не зарезервировано для будущих планов, но для доступа к прошлому контенту. И это все еще так, потому что сеть рассчитана на длительный срок. Поэтому сегодня вы можете посетить действительно старый сайт и получить всю информацию и функции, как в старые времена.

Оригинальная цель

В первую очередь целью свойства было представление внутреннего кодового имени браузера (например, «Lollipop» для Android 5). Mozilla была одной из первых, кто это реализовал - вероятно, в качестве API для JS-Developer для собственных исследований или для собственных сценариев. И это было предназначено для представления кодового имени каждого браузера в отдельности. Но, как уже упоминалось, история пошла другим путем.


Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи. Facebook

1- window.navigator

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

2- navigator.product

navigator.product всегда возвращает "Gecko" для всех браузеров.

3- navigator.appName

navigator.appName возвращает название приложения браузера. Но на самом деле это не имеет особого смысла, так как почти во всех слуачаях он возваращает "Netscape". Точнее с разными браузерам:

  • IE11+, Firefox, Chrome и Safari возвращает "Netscape".
  • IE 10 или старее, возвращает "Microsoft Internet Explorer".
  • Opera возвращает​​​​​​​ "Opera".

4- navigator.appCodeName

navigator.appCodeName возвращает название кода браузера. Но это не имеет особого смысла, так как все браузеры возвращают значение "Mozilla", что означает этот браузер совместим с Mozilla.

5- navigator.appVersion

navigator.appVersion возвращает информацию версии браузера.

Запустить пример на браузере Chrome (Windows 7), и получить результат:


Запустить пример на браузере​​​​​​​ Firefox (Windows 7) и получить результат:


6- navigator.platform

navigator.platform возвращает название платформы (platform), накоторой скомпилирован (compiled) браузер, он может вернуть пустую строку если браузер отказывает или не может определить платформу. Значениями могут быть:

Почти все браузеры, включая Chrome, Edge и Firefox 63 и позднее, при работе на операционной системе Windows возвращают "Win32" даже если работает на версии Windows 64 bit, в то время как Internet Explorer и версии Firefox до версии 63 возвращают "Win64".

7- navigator.cookieEnabled

navigator.cookieEnabled возвращает true если браузер включает (enable) Cookie, напротив возвращает false.

Конфигурировать браузер Chrome чтобы включить (turn on) или отключить (turn off) Cookie:

Конфигурировать браузер Firefox чтобы включит или отключить Cookie:

navigator.geolocation возвращает объект Geolocation, содержит информацию местопложения пользователя как долгота (longitude), широта (latitude). . Это позволяет website или приложению предоставить кастомизированный результат основываясь на местопложении пользователя.

Примечание: По причине безопасности, когда website пытается получить доступ к информации местоположения, пользователь получает оповещение и требование дать разрешение. Заметьте, что каждый браузер содержит свои правила и методы для требоавиня данного права.

Geolocation это довольно большой API, поэтому нужно его представить в отдельной статье, если вам интересно, вы можете просмотреть статью ниже:

9- navigator.language

navigator.language возвращает строку представляющую предпочитаемый пользователем язык, так же называется язык "пользовательский интерфейс браузера" (Browser UI).

Значеинями могут быть "en", "en-US", "fr", "fr-FR", "es-ES", . Заметьте, что браузер Safari на MacOS и iOS перед версией 10.2, country code являются строчными буквами (lowercase) "en-us", "fr-fr", "es-es", .

10- navigator.onLine

navigator.onLine возвращает онлайн статус браузера. Возвращает true то есть браузер в статусе онлайн, если наоборот возвращает false. Его значение обновляется, когда пользователь получает доступ к ссылке или имеет запрос отправленный на сервер с помощью JavaScript.

Разные браузеры могут иметь разные принципы онлайн

В Chrome и Safari, если браузер не может подключиться к локальной сети (LAN) или роутеру (Router), то он будет оффлайн, наоборот то будет считаться онлайн. Это значит вы получите значение true не значит вы можете получить доступ к Internet.

Во всех протестированных мной браузерах (IE, Firefox, Chrome, Safari, Opera, Яндекс) window.navigator.appCodeName возвращает "Mozilla" . Я знаю историю того, как веб-браузеры «угоняли» пользовательский агент, чтобы заставить страницы думать, что они совместимы со всеми другими браузерами, и я был доволен тем, appCodeName что был просто расширением этого принципала, однако я прочитал стандарт и оказывается, что в самом стандарте сказано, что это будет жестко запрограммированное значение «Mozilla». Итак, все эти браузеры действительно соответствуют стандартам.

Почему существует это значение? Я предполагаю, что он зарезервирован для использования в будущем, но каков план?

Этот вопрос на самом деле не объясняет этого, потому что все, что он утверждает, это то, что браузеры захватили его, что я уже понимаю, но мне больше интересно, каково было / есть прошлое или будущее использование.

NavigatorID.appCodeName Всегда возвращается 'Mozilla' , в любом браузере. Это свойство сохраняется только в целях совместимости.

Примечание. Не полагайтесь на это свойство для возврата настоящего названия продукта. Все браузеры возвращают Mozilla в качестве значения этого свойства.

Это похоже на NavigatorID.product , который всегда возвращает строку 'Gecko' .

Как объясняет Себастьян Г. в своем ответе , он использовался для сниффинга пользовательского агента. Это означает, что в какой-то момент браузеры, отличные от Mozilla, не содержали Mozilla в своей строке UA. Хотя я не уверен, сколько времени прошло между браузерами на основе Mozilla / Mozilla "Mozilla" в строке UA и добавлением "Mozilla" в браузерах, отличных от Mozilla.

Я не могу найти никакой документации о том, когда appCodeName свойство впервые стало доступно в navigator объекте (предположительно, до 2000 года, поскольку в 2000 году на него ссылались как на «давным-давно» ).

Эта статья может быть вам интересна: строки агента в популярных браузерах

Эта статья взята из Интернета, укажите источник при перепечатке.

Читайте также: