2009-08-24 2 views
1

Я делал browser recognition tutorial на w3schools, и я обнаружил, что при использовании firefox и google chrome я получил Netscape 5 в качестве своего результата. Мне было просто любопытно, почему это так. Кто-нибудь хочет объяснить это мне?Javascript Browser Recognition

+6

Не рекомендуется использовать w3schools как любой определенный источник информации о веб-технологиях. Это довольно сильно устарело. Кроме того, это не очень хорошая идея, чтобы обнюхивать браузер, если нет абсолютно никакого другого способа сделать то, что вам нужно. Лучше обнюхивать функцию. – Breton

ответ

4

Я думаю, что эта статья о Browser Object Model по существу отвечает на ваш вопрос. В принципе, объект navigator бесполезен, и никто не хочет его обновлять. У Firefox есть свои корни в Netscape, и эти свойства просто не обновлялись. (Примечание: меня интересует , почему они никогда не обновлялись, но я еще не нашел его).

Этот урок, который вы используете в w3c, устарел. Он использует чрезвычайно старый метод обнаружения браузера, который просто не работает. A better version is here, но даже этот метод больше не рекомендуется. Все эти свойства могут быть подделаны и довольно просто ненадежны.

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

Интересно отметить, что современные библиотеки, такие как MooTools и JQuery, делают идентификацию браузера очень тривиальной и чистой, выполняя все эти функции и функции для вас. MooTools имеет объект Browser, а JQuery имеет jQuery.browser, теперь он устарел в пользу jQuery.support.

+0

@ Zombat: Эй, ты избил меня на несколько секунд. Даже я предлагаю версию, доступную на сайте quirksmode. :) – kayteen

+0

@kayteen - да, я ждал, чтобы кто-то опубликовал их, и меня заинтересовали конкретные причины, по которым «навигатор» никогда не обновлялся, поэтому я только начал искать себя и написал ответ. – zombat

0

Это трендовая тема может также использоваться:

When IE8 is not IE8 what is $.browser.version?

Чтобы повторить некоторые из других комментариев. Обнаружение браузера с использованием пользовательского агента ненадежно. Обнаружение объектов и обнаружение объектов - это путь