Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Opera 10.00 прикидывается Opera 9.80

It appears that a considerable amount of browser sniffing scripts are not quite ready for this change to double digits, as they detect only the first digit of the user agent string: in such a scenario, Opera 10 is interpreted as Opera 1. This results in sites mistakenly identifying Opera 10 as an unsupported browser, thereby breaking server, as well as client-side scripts.

С Dev.Opera. Краткий перевод: значительная часть скриптов, определяющих версию браузера, не расчитана на версию в две цифры (OMG!), поэтому «Opera/10.00» превращается у них в «Opera/1»: они просто забирают первую цифру.

10 комментариев
arty (arty.name) 2009

работа с legacy кодом — ужас, а работа с legacy интернетом — ужас-ужас : (

tiamat-slava.livejournal.com 2009

Я еще не встречал ни одной программы, которая бы к 10й версии не стала толстым обвешанным комбайном, кроме оперы. Она, конечно, не идеал, но и лика своего не утратила.

david-m.livejournal.com 2009

В этом ВСЯ Опера…

nonick.mp 2009

как вариант можно в user-agent записать 9.(9)

e-migrant.livejournal.com 2009

поэтому «Opera/10.00» превращается у них в «Opera/1»: они просто забирают первую цифру

Вторую?

pepelsbey.livejournal.com 2009

По мотивам этой статьи и была нарисована футболка: <a href=» http://pepelsbey.livejournal.com/33646.html%22%3EStop sniffing my browser!</a>

Евгений Степанищев (bolknote.ru) 2009

Комментарий для david-m.livejournal.com:

В чём ВСЯ Опера?

Евгений Степанищев (bolknote.ru) 2009

Комментарий для e-migrant.livejournal.com:

Первую. Первая цифра там — 1, вторая — 0.

david-m.livejournal.com 2009

Комментарий для Евгения Степанищева:

В этом. Сначала прикидывалась не тем юзерагентом. Теперь прикидывается не той версией… Всё в неусыпной заботе о разработчиках, ога. Как результат — для правильного определения Оперы разработчикам требуется на десять if-ов больше, чем с любым другим браузером.

Евгений Степанищев (bolknote.ru) 2009

Комментарий для david-m.livejournal.com:

Всё в неусыпной работе о пользователях, причём тут разработчики? Итог, для правильно определения «Оперы» нужен ровно один if, вот он:

if (self.opera) alert(’Я опера’);