Надежный способ обнаружения настольных и мобильных браузеров

Возможный дубликат:
Каков наилучший способ обнаружения браузера в Javascript?

Я хотел бы по существу сделать следующее (в JavaScript или PHP):

if (desktop browser) {
     do x;
}
else {   // mobile browser
     do not do x;
}

Известно, что использование метода обнаружения браузера тестирование возможностей. Мой вопрос заключается в том, что мобильные браузеры становятся умнее и мощнее настольной версии, что в идеале исключительное обнаружение возможностей для фильтрации рабочего стола от нерабочих браузеров?

Я думаю, что изменение условной проверки, т.е. if (mobile browser) {} else ..., может оказаться более проблематичным, верно?

Ответ 1

Какой небольшой поиск Google появился, от Красивый сайт:

var isMobile = {
    Android: function() {
        return navigator.userAgent.match(/Android/i);
    },
    BlackBerry: function() {
        return navigator.userAgent.match(/BlackBerry/i);
    },
    iOS: function() {
        return navigator.userAgent.match(/iPhone|iPad|iPod/i);
    },
    Opera: function() {
        return navigator.userAgent.match(/Opera Mini/i);
    },
    Windows: function() {
        return navigator.userAgent.match(/IEMobile/i);
    },
    any: function() {
        return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
    }
};

if(isMobile.any()){
    // Mobile!
} else {
    // Not mobile
}

Я не буду утверждать, что обнаружение признаков предпочтительнее для ньюнсирования пользовательского агента, что на самом деле ужасно. Но если вы обнаруживаете функцию, чтобы определить, считается ли устройство мобильным или нет, вы подвергаете себя совершенно новой проблеме.

Вы не можете проверить pixel-ratio, потому что новые компьютеры настольных компьютеров, скорее всего, будут "сетчаткой" или супер-HD. Вы не можете проверить device-orientation, потому что это больше не уникально для мобильных телефонов. Вы не можете проверить (если можете) гироскоп, потому что какой-то ноутбук может вернуть значения.

Создавайте веб-сайты, которые работают на всех платформах, не пытаясь их разделить!

Ответ 2

Я думаю, что вы ищете get_browser() в php.

Попытка определить возможности браузера пользователя, просмотрев информацию обозревателя в файле browscap.ini.