Тема: Browser Detection
Показать сообщение отдельно
  #4 (permalink)  
Старый 12.10.2008, 17:32
...
Отправить личное сообщение для Zeroglif Посмотреть профиль Найти все сообщения от Zeroglif
 
Регистрация: 09.03.2008
Сообщений: 216

Сообщение от Octane
John Resing к примеру, в своём блоге советует не использовать object detection (if(window.opera), а определять браузер именно по «userAgent».
Про это речь? Древний, известный большинству специалистов, баг назван им "fantastically difficult to spot and work around", сама ситуация неправильно истолкована, как что-то там про "global variables" да ещё и маловероятный id="opera" там же... нагнал страху. И я там не увидел, чтобы он прямо советовал "user-agent", шифруется евангелистом, хотя либа егоЙная говорит сама за себя... Проблема-то в другом - насколько показателен window.opera с точки зрения задач? Если нужно кинуть алерт: "Привет, юзверь Оперы5+!" или зачем-то отсечь сумасшедших с более старыми версиями - это одно, а если основывать на этом решения, специально заточенные под современную Оперу, то тут будет нужна более продвинутая со всех точек зрения версия (допустим, 7+), и window.opera уже не советчик, просится "feature detection".

Сообщение от Octane
это самый короткий и стабильный способ определения Internet Explorer
Спсособ определения версии jscript, не версии браузера. Я бы очень хотел иметь таблицу с привязками изменений в языке к версиям/билдам jscript-овых либ, но увы, а IE само собой определяется, комменты ж его.

Сообщение от Octane
версия JScript будет 5.8
Планируют. Но с перспективой принятия ES3.1 развитие версий может резко ускориться.

p.s. ради интереса решил посмотреть, что натворил новый хромой браузер в стране кода, где определяют не фичи, а браузер. Отвалились скрипты у сайтов, которые проверяли вендора, от мелких, до таких, как, например, CNN.COM, цитирую:

Цитата:
Ok, I figured out. CNN.COM video does not like Chrome. It checks the browser by matching navigator.vendor string against 'Apple'. Because we changed navigator.string to 'Google Inc' recently, it does not treat Google Chrome as Safari anymore.

Someone needs to call CNN.com to fix the issue.
http://code.google.com/p/chromium/issues/detail?id=475
Или по тем же причинам уже на games.yahoo.com:

Цитата:
This is Evangelism!!
The line that's causing the issue is g=(n.vendor.indexOf("Ap")==0) ? 3 : (n.productSub>20030623)?2:0; This returns 0 for Chrome and hence not displaying flash content.
http://code.google.com/p/chromium/issues/detail?id=2446
Ответить с цитированием