Мне грустно сказать: нам не повезло на этом.
Я хотел бы направить вас к автору WhatBrowser : Everybody лежит.
В принципе, ни один браузер не честен. Независимо от того, используете ли вы Chrome или IE, они оба скажут вам, что они «Mozilla Netscape» с поддержкой Gecko и Safari. Попробуйте сами по любому из скриптов, летающих в этой теме:
или любой другой ... Попробуйте с Chrome (который может все еще преуспеть), а затем попробуйте его с последней версией IE, и вы будете плакать. Конечно, есть эвристика, чтобы все было в порядке, но будет утомительно схватывать все крайние случаи, и они, скорее всего, больше не будут работать больше через год.
Возьмите свой код, для Пример:
Chrome говорит:
Browser CodeName: Mozilla
Имя браузера: Netscape
Версия браузера: 5.0 (Windows NT 6.1, WOW64) AppleWebKit / 537.36 (KHTML, например, Gecko) Chrome / 40.0.2214.115 Safari / 537.36
Cookies Включено: true
Платформа: Win32
Заголовок пользовательского агента: Mozilla / 5.0 (Windows NT 6.1, WOW64) AppleWebKit / 537.36 (KHTML, например, Gecko) Chrome / 40.0.2214.115 Safari / 537.36
blockquote>IE говорит:
Browser CodeName: Mozilla
Имя браузера: Netscape
Версия браузера: 5.0 (Windows NT 6.1; WOW64; Trident / 7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3; rv: 11.0), как Gecko
Печенье включено : true
Платформа: Win32
Заголовок пользовательского агента: Mozilla / 5.0 (Windows NT 6.1; WOW64; Trident / 7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3; rv: 11.0), как Gecko
blockquote>По крайней мере, Chrome по-прежнему имеет строку, содержащую «Chrome» с точным номером версии. Но для IE вы должны экстраполировать из того, что он поддерживает, чтобы на самом деле понять это (кто еще мог бы хвалиться тем, что они поддерживают
.NET
илиMedia Center
: P), а затем сопоставляют его сrv:
в самом конце получите номер версии. Конечно, даже такие сложные эвристики могут сбой, как только IE 12 (или то, что они хотят назвать) выходит.