Комментарии 51
Красиво.
0
ЖестЬ!
-1
А как opera от linx отличить? А то совершенно одинаково написано.
0
Опера читает первый из одинаковых аттрибутов, а рысь, видимо, последний.
0
видимо, второе объявление атрибута пропустит
0
не одинаково. Опера - первый правильный атрибут, линкс - последний правильный атрибут.
0
Может, дело в том, что Опера "читает" первое попавшееся значение name, а lynx - последнее?
0
а я чет не понял как этим воспользоваться... может расскажет кто?
0
alert(document.getElementById('browser').getAttribute('name'));
0
Лучше этим не пользоваться %) Красиво, конечно, но такие фокусы работают, пока эти различия не фиксят. Вообще использовать недокументированные возможности это копать себе яму в недалеком будущем.
+9
<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(’browser’).name);
}
</script>
<a href="#" onclick="habr();">habr</a>
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(’browser’).name);
}
</script>
<a href="#" onclick="habr();">habr</a>
+3
только не надо таким пользоваться на практике :) Есть более простые способы.
0
Хороший способ, красивый. Но подходит разве что для статистики. Для того, чтоб понять как реализуется та или иная фича в конкретном браузере лучше использовать уловки типа
и им подобные (
if (element.createTextRange) {
// реализация для IE с использованием createTextRange-компонентов
} else if (element.setSelectionRange) {
// реализация для FireFox с использованием другой функции
} else {
// функция не поддерживается
}
и им подобные (
window.ActiveXObject
, document.documentElement
,..)+1
На такие уловки когда-нибудь сам поймаешься. Добавят в IE версии 9.0 setSelectionRange, но работающее по другому.
Лучше использовать какую-либо библиотеку, которая, хоть даже таким методом, будет разбираться в браузерах. В будущем можно будет обновлять версию библиотеки, где такие трюки будут идти в ногу со временем (с будущими версиями браузеров).
Лучше использовать какую-либо библиотеку, которая, хоть даже таким методом, будет разбираться в браузерах. В будущем можно будет обновлять версию библиотеки, где такие трюки будут идти в ногу со временем (с будущими версиями браузеров).
0
Мега!
-1
Класс!!!
-1
В Safari 3 уже не работает - определяется как Firefox.
+1
А где ссылка на оригинал?
0
не XHTMLно :-)
+5
Черная магия, она конечно красивая, но писать через хаки, как все мы понимаем, никто не будет. Но для расширения кругозора знать безусловно надо.
+3
Выглядит ужасно :)
0
Есть плюс (наверное): Identify as Opera | Firefox | IE : не обманишь :)
+1
Офигеть. Это ж сколько времени на тестирование угрохано?
0
зачем перебивать в хабрахабр весь http://rmcreative.ru/ по очереди? )
0
а про поисковики что нибудь известно? например как обработает такую конструкцию гугл?
0
а как человеку сие распарсить?
объяснение как это работает!
объяснение как это работает!
0
Вы ведь взяли эту информацию с чужого ресурса, почему не указываете, откуда?
+2
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Определяем браузер. Самый необычный способ