Comments 51
Красиво.
ЖестЬ!
А как opera от linx отличить? А то совершенно одинаково написано.
Опера читает первый из одинаковых аттрибутов, а рысь, видимо, последний.
видимо, второе объявление атрибута пропустит
не одинаково. Опера - первый правильный атрибут, линкс - последний правильный атрибут.
Может, дело в том, что Опера "читает" первое попавшееся значение 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(’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>
только не надо таким пользоваться на практике :) Есть более простые способы.
Хороший способ, красивый. Но подходит разве что для статистики. Для того, чтоб понять как реализуется та или иная фича в конкретном браузере лучше использовать уловки типа
и им подобные (
if (element.createTextRange) {
// реализация для IE с использованием createTextRange-компонентов
} else if (element.setSelectionRange) {
// реализация для FireFox с использованием другой функции
} else {
// функция не поддерживается
}
и им подобные (
window.ActiveXObject
, document.documentElement
,..)На такие уловки когда-нибудь сам поймаешься. Добавят в IE версии 9.0 setSelectionRange, но работающее по другому.
Лучше использовать какую-либо библиотеку, которая, хоть даже таким методом, будет разбираться в браузерах. В будущем можно будет обновлять версию библиотеки, где такие трюки будут идти в ногу со временем (с будущими версиями браузеров).
Лучше использовать какую-либо библиотеку, которая, хоть даже таким методом, будет разбираться в браузерах. В будущем можно будет обновлять версию библиотеки, где такие трюки будут идти в ногу со временем (с будущими версиями браузеров).
Мега!
Класс!!!
В Safari 3 уже не работает - определяется как Firefox.
А где ссылка на оригинал?
не XHTMLно :-)
Черная магия, она конечно красивая, но писать через хаки, как все мы понимаем, никто не будет. Но для расширения кругозора знать безусловно надо.
Выглядит ужасно :)
Есть плюс (наверное): Identify as Opera | Firefox | IE : не обманишь :)
Офигеть. Это ж сколько времени на тестирование угрохано?
зачем перебивать в хабрахабр весь http://rmcreative.ru/ по очереди? )
а про поисковики что нибудь известно? например как обработает такую конструкцию гугл?
а как человеку сие распарсить?
объяснение как это работает!
объяснение как это работает!
Вы ведь взяли эту информацию с чужого ресурса, почему не указываете, откуда?
Sign up to leave a comment.
Определяем браузер. Самый необычный способ