Как может я находить, какую версию браузера пользователь использует, и попросите, чтобы он обновил его
Вы можете прочитать HTTP_USER_AGENT
из Request.ServerVariables
.
В ASP.NET это было бы:
Response.Write(HttpContext.Current.Request.ServerVariables["HTTP_USER_AGENT"]);
Вы можете выполнить обнаружение функций с помощью jQuery, например, так:
if (!jQuery.support.opacity)
//Waah waah waah...
Вы также можете проверить версию браузера с помощью jQuery, например, так:
if (!jQuery.browser.msie && jQuery.browser.version === 6)
//Waah waah waah...
Однако, по возможности, этого следует избегать.
Если речь идет только об Internet Explorer, можно использовать условные комментарии:
<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]-->
Больше информации на http://www.quirksmode.org/css/condcom.html
В коде на стороне сервера: Request.Browser возвращает экземпляр HttpBrowserCapabilities со всей искомой информацией.
http://msdn.microsoft.com/en-us/library/system.web.httpbrowsercapabilities.aspx
На стороне клиентского скрипта (javascript):
http://www.quirksmode.org/js/detect.html
В дополнение к комментарию @Nick, в следующем сообщении MSDN:
http://msdn.microsoft.com/en-us/library/x3k2ssx2.aspx
говорится:
Возможности браузера указывают, поддерживает ли тип браузера в целом поддерживает такие функции, как JavaScript, а не поддерживает ли отдельный экземпляр браузер имеет эти функции включенными или отключены.
Я думаю, что версия и тип браузера будут достаточно согласованными.
Если вы уже используете библиотеку javascript, такую как jQuery или mootools, у вас также есть эти инструменты.
jQuery:
if( $.browser.msie ) {
// do something
}
mootools:
if (Browser.Engine.trident4) {
// ie6
}
имейте в виду, что обычно полагаться не следует. Даже в документации jQuery есть предупреждение, в котором рекомендуется обнаружение функции вместо обнаружения браузера.