Как стать автором
Обновить

Комментарии 51

А как opera от linx отличить? А то совершенно одинаково написано.
Опера читает первый из одинаковых аттрибутов, а рысь, видимо, последний.
видимо, второе объявление атрибута пропустит
не одинаково. Опера - первый правильный атрибут, линкс - последний правильный атрибут.
Спасибо
вывод — opera и lynx единсвенные правильные браузеры, остальные читают всякую муть =)
забавный вывод! Но как не согласиться?
Странная логика. Не правильные, а привередливые.
Чуть что не те символы в начале так уже ничего не может.
Может, дело в том, что Опера "читает" первое попавшееся значение name, а lynx - последнее?
Вот что бывает, если не обновлять страницу.. Извините))))
а я чет не понял как этим воспользоваться... может расскажет кто?
alert(document.getElementById('browser').getAttribute('name'));
ага, спасибо, я все понял :)

З.Ы. извините, ваш ник читается как "ротука"? ))
"ротука" или "готика", в зависимости от обстоятельств и собеседника (-:
ыыыы... роТиКа :)
Я не знаю, о ком Вы.
Я не знаю, о чём Вы.
Дурацкий ник притягивает дурацкие шутки :-) (можете меня забанить)
Да, ваш ник — несомненно круче. (-:
Какой предсказуемый ответ! :-) Хотя, с таким ником-то ...
спасибо
а я чего-то не сообразил сразу :)
Лучше этим не пользоваться %) Красиво, конечно, но такие фокусы работают, пока эти различия не фиксят. Вообще использовать недокументированные возможности — это копать себе яму в недалеком будущем.
Полностью согласен. И без этого верстальщикам иногда приходится переписывать код из-за изменения движка рендера.
видимо это очень редкий случай.
кажется мне, что автор и не предлагает использовать такую экзотику в реальных проектах.
может помочь в защите от глупых копипастеров
<map
id="browser"
/''name="firefox"
/""name="sleipnir_gecko"
"name="safari"
""name="konqueror"
/name="ie"
name="opera"
name="lynx"
>
</map>
<script type="text/javascript">
function habr () {
alert (document.getElementById(&#146;browser&#146;).name);
}
</script>

<a href="#" onclick="habr();">habr</a>
только не надо таким пользоваться на практике :) Есть более простые способы.
Хороший способ, красивый. Но подходит разве что для статистики. Для того, чтоб понять как реализуется та или иная фича в конкретном браузере лучше использовать уловки типа

if (element.createTextRange) {
// реализация для IE с использованием createTextRange-компонентов
} else if (element.setSelectionRange) {
// реализация для FireFox с использованием другой функции
} else {
// функция не поддерживается
}


и им подобные (window.ActiveXObject, document.documentElement,..)
На такие уловки когда-нибудь сам поймаешься. Добавят в IE версии 9.0 setSelectionRange, но работающее по другому.

Лучше использовать какую-либо библиотеку, которая, хоть даже таким методом, будет разбираться в браузерах. В будущем можно будет обновлять версию библиотеки, где такие трюки будут идти в ногу со временем (с будущими версиями браузеров).
В Safari 3 уже не работает - определяется как Firefox.
Переписали Safari на движке Gecko? :)
Firefox Team: "Cupertino, start your photocopiers!" =)
А где ссылка на оригинал?
Черная магия, она конечно красивая, но писать через хаки, как все мы понимаем, никто не будет. Но для расширения кругозора знать безусловно надо.
Кругозор черная магия не расширит, но как игра для ума сойдет.
Выглядит ужасно :)
Есть плюс (наверное): Identify as Opera | Firefox | IE : не обманишь :)
Офигеть. Это ж сколько времени на тестирование угрохано?
зачем перебивать в хабрахабр весь http://rmcreative.ru/ по очереди? )
+1 и в меморис
а про поисковики что нибудь известно? например как обработает такую конструкцию гугл?
А зачем поисковикам это обрабатывать?
а как человеку сие распарсить?

объяснение как это работает!
Вы ведь взяли эту информацию с чужого ресурса, почему не указываете, откуда?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории