Comments 74
А куда дели Lynx, iCab, Konqueror и кучу других?
Получается, что только «референсные» взяли.
Получается, что только «референсные» взяли.
1) Konqueror есть.
2)
3) iCab и кучу других браузеров, которыми пользуются 0,0… % пользователей обычно основаны либо на Геко либо на KHTML
2)
В Начале был NCSA Mosaic… и показал он пользователем картинки в тексте..., здесь говориться по поводу полноценных браузеров. (это о Lynx).
3) iCab и кучу других браузеров, которыми пользуются 0,0… % пользователей обычно основаны либо на Геко либо на KHTML
а, что, отличный перевод!
плюс!
плюс!
Спасибо! :)
Очень поучительно и доступно.
Читается на одном дыхании как молитва. Спасибо
Познавательно и весело. Здорово!
Последний абзац, как вывод, улыбнул :)
Содержательно, но написано не очень.
Как учение какой-то секты.
Как учение какой-то секты.
Меня это наоборот привлекло в тексте. Стали бы вы читать историю каких-то скучных строчек, будь оно написано в стиле Википедии?
А тут прекрасно виден весь юмор сложившейся ситуации.
А тут прекрасно виден весь юмор сложившейся ситуации.
зы, минусую не я.
about: mozilla?
UFO just landed and posted this here
А ведь настоящий вебмастер имеет столько шишек на лбу сколько браузеров… И это печальная правда…
А я всё думал откуда в юзер-агенте IE слово Mozilla.
Спасибо. Стало понятней.
Спасибо. Стало понятней.
Анахер/1.0 (такие; ЗАПУтанные 2.0; Юзер Агенты 3.9.91232)
Отличный перевод, над концовкой смеялся от души! :))
Опера как-то не хронологически расположена. Исторически она опережает и переродившуюся мозиллу (на два года), и ff (на шесть лет) и konqueror (на четыре года).
Про опиру стоит упомянуть, что та с пятой версии (или даже раньше?) прикидывалась IE, копируя и то, что ie прикидывался mozilla…
Про опиру стоит упомянуть, что та с пятой версии (или даже раньше?) прикидывалась IE, копируя и то, что ie прикидывался mozilla…
Опера расположена там, где она занялась этим безумием. Вначале Opera пыталась играть по правилами и имела нормальный user-agent. Хотя вроде как выбор User-Agent'а появился до Firefox — но точно после Mozilla'ы…
Опера стала играть юзерагентами с 6-й версии, после печальной истории с MSN.com, когда MS стали опере подсовывать там кривой код, чтобы была кривая страница и пользователи отвернулись от оперы (а шёл 2000 или 2001 год). Opera Software возмутились и подали в суд. И выиграли его (Миллион долларов отсудили, что-ли). Но с тех пор, до самой девятой версии, Опера прикидывалась IE по умолчанию (с возможностью выбора UA).
Кстати говоря, Opera/9.51 (Windows NT 5.1; U; en) — самый вменяемый UA. Вменяемее только NCSA_Mosaic/2.0 (Windows 3.1)
Кстати говоря, Opera/9.51 (Windows NT 5.1; U; en) — самый вменяемый UA. Вменяемее только NCSA_Mosaic/2.0 (Windows 3.1)
Порадовало. Да, пожалуй стоит пересмотреть компаниям политику юзер-агентов и назвать всё своими именами. Полегчает ли? — вопрос открытый.
Лучше б сосредоточились на соответствии стандартам w3c, думаю всем станет легче, если не придется проводить часы над кросс-браузерной оптимизацией. Конечно в большей степени это относится только к одному браузеру, но да ладно, стараться должны все.
Лучше б сосредоточились на соответствии стандартам w3c, думаю всем станет легче, если не придется проводить часы над кросс-браузерной оптимизацией. Конечно в большей степени это относится только к одному браузеру, но да ладно, стараться должны все.
Да, пожалуй стоит пересмотреть компаниям политику юзер-агентов и назвать всё своими именами. Полегчает ли? — вопрос открытый.Ну… Web-мастерам полегчает, да. Так как любой браузер, который так сделает потеряет 99% пользователей (а может и 99.9%) сходу и про него можно будет забыть…
Но есть и другие, более простые, способы угробить браузер…
В смысле если FF станет писать что-то вроде «Firefox/3.0.1 Gecko/2008070208», то он потеряет сразу всех пользователей?
ну… моя опера отмечается как опера и особых проблем как-то не видно.
прекрасное повествование
artyfarty, Спасибо, очень понравилось.
Я понимаю, что это перевод, но мне кажется статью можно сделать намного лучше, добавляя свои примечания по поводу во-первых хронологии (действительно, Опера появилась раньше нежели «переродившийся Файрфокс»), а во-вторых — вкраце — как изменялись веб-стандарты с течением времени (упоминаются только фреймы) и какие браузеры то или иное поддерживали. Тогда топик будет вообще блеск. Я сам в свое время замучился рыскать по википедии, выясняя что было раньше, а что позже и почему. :-) Если не хочется портить перевод, и тема вам интересна, напишите еще одну статью. Я не стебусь, я абсолютно серьезно.
Добавлю вам кармы в надежде, что вы это сделаете. :-) С уважением.
Я понимаю, что это перевод, но мне кажется статью можно сделать намного лучше, добавляя свои примечания по поводу во-первых хронологии (действительно, Опера появилась раньше нежели «переродившийся Файрфокс»), а во-вторых — вкраце — как изменялись веб-стандарты с течением времени (упоминаются только фреймы) и какие браузеры то или иное поддерживали. Тогда топик будет вообще блеск. Я сам в свое время замучился рыскать по википедии, выясняя что было раньше, а что позже и почему. :-) Если не хочется портить перевод, и тема вам интересна, напишите еще одну статью. Я не стебусь, я абсолютно серьезно.
Добавлю вам кармы в надежде, что вы это сделаете. :-) С уважением.
повеселило )))
вот я ток одного не понимаю. вебмастера стали делать сайты с фреймами только для мазилы, потому-что больше небыло браузеров, которые их открывали. и вот, когда исчезли браузеры, которые их показывать не могут — нафига маскироваться? и уж темболее хрому под сафари…
Наследственность — тяжелая штука.
Потому что есть куча готовых сайтов типа
if (… IE....) {
} else if (… Mozilla....)
} else {
document.write('Извините, ваш браузер не поддерживается');
}
Например внутренняя привата24. Далее сайт показывается нормально, но строчка присутствует. Поэтому если придумать свой новый юзерагент, то получим эту надпись. А это антиреклама для непонимающих пользователей.
if (… IE....) {
} else if (… Mozilla....)
} else {
document.write('Извините, ваш браузер не поддерживается');
}
Например внутренняя привата24. Далее сайт показывается нормально, но строчка присутствует. Поэтому если придумать свой новый юзерагент, то получим эту надпись. А это антиреклама для непонимающих пользователей.
UFO just landed and posted this here
«давайте постебёмся над Майкрософт и обзовём винду плохоотдебаженными драйверами устройств»
а что это означает? я не в курсе… :(
а что это означает? я не в курсе… :(
Marc Andreessen, the founder of Netscape, once famously stated that Windows was nothing but a set of poorly debugged device drivers, which the web would soon make obsolete.Первоначальный источник не найден. Marc Andreessen — разработчки Netscape
читать тяжело, но прикольно, так что плюс)
Да, концовка прикольная особенно)
оригинальный текст написал в стиле пародии на библию… очень забавно читать
Он написан в стиле пародии на пародию. Откуда там фраза and there was much rejoicing, догадываетесь?
мне кажется это не забавным, а очень-очень грустным… <_<
UFO just landed and posted this here
Пасибо — а то никак не мог въехать какого и ослик и огнелис являются мозиллами :)
Спасибо, многое стало понятно. Удивляет, почему в новую эпоху браузерных войн нельзя свести useragent к такому виду:
Opera 9.51, Linux
Safari 3.0, Windows
IE7, Windows
Firefox 3.0, MacOS
Opera 9.51, Linux
Safari 3.0, Windows
IE7, Windows
Firefox 3.0, MacOS
Ах вот оно что!
Теперь многое встало на свои места.
Еще раз спасибо за статью! и плюс в карму!
Теперь многое встало на свои места.
Еще раз спасибо за статью! и плюс в карму!
Отлично написано. Читается со смехом.
Долго думал, почему у всех браузеров юзер-агент начинается с Mozilla/x.0.
Какая максимальная длина поля User-Agent по стандарту?;)
Долго думал, почему у всех браузеров юзер-агент начинается с Mozilla/x.0.
Какая максимальная длина поля User-Agent по стандарту?;)
Определение браузера на серверной стороне используется реже определения клиентского.
А грамотное клиентское определение вообще не должно обращаться к UserAgent.
Все, наверное, видели старый бородатый способ либо сотни его вариаций (код на данный момент устарел, привёл просто в качестве примера):
Вообще, определение сводится к ключевым проверкам:
1. Определение Оперы. Если существует window.opera, значит Opera
2. Определение Chrome (ненадёжно)document.all есть в FF, IE и Opera, т.е почти везде. Но попробуте в Chrome ввести в адресной строке javascript: alert(document.all).
3. Для IE есть решение «напролом»:
4. Определение IE6. XMLHttpRequest работает в Opera, FF, IE7, Chrome. Но в IE6 его нет. (проверьте: javascript: alert(typeof XMLHttpRequest))
5. FF определяется чаще всего так: isMozilla=! isMSIE &&! isOpera. Решение «в лоб», ужасное, некрасивое, но для тех, кто верстает только под 3 браузера (часто этого хватает), сойдёт.
5.1 Определение FF возможно внутри кода обработки события: if (typeof e.offsetX == 'undefined') { isFF=1}
А грамотное клиентское определение вообще не должно обращаться к UserAgent.
Все, наверное, видели старый бородатый способ либо сотни его вариаций (код на данный момент устарел, привёл просто в качестве примера):
isDOM=document.getElementById //DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
isOpera=isOpera5=window.opera && isDOM //Opera 5+
isOpera6=isOpera && window.print //Opera 6+
isOpera7=isOpera && document.readyState //Opera 7+
isMSIE=document.all && document.all.item && !isOpera //Microsoft Internet Explorer 4+
isMSIE5=isDOM && isMSIE //MSIE 5+
isNetscape4=document.layers //Netscape 4.*
isMozilla=isDOM && navigator.appName=="Netscape" //Mozilla или Netscape 6.*
Вообще, определение сводится к ключевым проверкам:
1. Определение Оперы. Если существует window.opera, значит Opera
2. Определение Chrome (ненадёжно)document.all есть в FF, IE и Opera, т.е почти везде. Но попробуте в Chrome ввести в адресной строке javascript: alert(document.all).
3. Для IE есть решение «напролом»:
<![if IE 7]>
<script>
var IsIE=1
</script>
<![endif]>
4. Определение IE6. XMLHttpRequest работает в Opera, FF, IE7, Chrome. Но в IE6 его нет. (проверьте: javascript: alert(typeof XMLHttpRequest))
5. FF определяется чаще всего так: isMozilla=! isMSIE &&! isOpera. Решение «в лоб», ужасное, некрасивое, но для тех, кто верстает только под 3 браузера (часто этого хватает), сойдёт.
5.1 Определение FF возможно внутри кода обработки события: if (typeof e.offsetX == 'undefined') { isFF=1}
Да, определение Chrome==Определение Safari
(но определение Chrome!===Определение Safari)
(но определение Chrome!===Определение Safari)
А мне больше нравятся штуки вообще без определения браузера, вроде:
if (! e) e = window.event;
if (! e) e = window.event;
UFO just landed and posted this here
2. Не знаю зачем вам выделять Chrome :) но если хотите выделить движок, то используйте тоже самое для определения webkit, если вам нужно определить javascript — то есть одна особенность: V8 не разрешает использовать имя native. собственно можно попробывать такой код (не уверен что получится, но вроде должно)
try {
(new Function('return native'))();
}catch(e){ isChrome = 1 }
3. Не обязательно использовать conditional comments. Есть способ лучше
/*@cc_on@*//*@if (@_jscript_version) isIE=1 @end @*/
4. Пользуйтесь способом выше — @_jscript_version содержит версию javascript движка, каждая версия соответствует определенной версии IE. На msdn есть таблица соответствий.
5. Можно проверять gecko only свойства/методы, как например GeckoActiveXObject или window.atob()/window.btoa(). Последние еще в Netscape были, и насколько я знаю в других браузерах не встречаются.
try {
(new Function('return native'))();
}catch(e){ isChrome = 1 }
3. Не обязательно использовать conditional comments. Есть способ лучше
/*@cc_on@*//*@if (@_jscript_version) isIE=1 @end @*/
4. Пользуйтесь способом выше — @_jscript_version содержит версию javascript движка, каждая версия соответствует определенной версии IE. На msdn есть таблица соответствий.
5. Можно проверять gecko only свойства/методы, как например GeckoActiveXObject или window.atob()/window.btoa(). Последние еще в Netscape были, и насколько я знаю в других браузерах не встречаются.
Вы что-то перепутали относительно времени прихода Оперы и Фаерфокса.
Нда… Полный ппц в стане браузеров :(
Скоро в юзерагентах будут писать ACID совместимость:
User-Agent: ACID
User-Agent: ACID2
User-Agent: ACID3
PS: Они таки убили NCSA Mosaic…
Скоро в юзерагентах будут писать ACID совместимость:
User-Agent: ACID
User-Agent: ACID2
User-Agent: ACID3
PS: Они таки убили NCSA Mosaic…
UFO just landed and posted this here
Интересно, почему я не удивлен, что «упячка» не интересуется user-agent-ом? И надо-ли всем брать с нее пример :)))
Мицгол, ты?
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240
Sign up to leave a comment.
История юзер-агентов