На сенсорном устройстве, таком как iPhone/iPad/Android, может быть трудно нажать маленькую кнопку пальцем. Существует не межсерверный способ обнаружения сенсорных устройств с помощью мультимедийных запросов CSS, о которых я знаю. Поэтому я проверяю, поддерживает ли браузер поддержку событий javascript touch. До сих пор другие браузеры не поддерживали их, но последний Google Chrome на dev-канале включал события касания (даже для не сенсорных устройств). И я подозреваю, что другие производители браузеров будут следовать, поскольку ноутбуки с сенсорными экранами отправляются. Обновление: это ошибка в Chrome, поэтому теперь обнаружение JavaScript работает снова.
Это тест, который я использую:
function isTouchDevice() {
return "ontouchstart" in window;
}
Проблема в том, что это только тесты, если браузер поддерживает события касания, а не устройство.
Кто-нибудь знает о правильном [tm] способе предоставления сенсорным устройствам лучшего пользовательского опыта? Помимо обнюхивания пользовательского агента.
Mozilla имеет медиа-запрос для сенсорных устройств. Но я не видел ничего подобного в любом другом браузере: https://developer.mozilla.org/En/CSS/Media_queries#-moz-touch-enabled
Обновление. Я хочу избежать использования отдельной страницы/сайта для мобильных устройств/сенсорных устройств. Решение должно обнаруживать сенсорные устройства с обнаружением объектов или аналогичными с помощью JavaScript или включать пользовательский сенсорный CSS без взлома агента пользователя! Основная причина, по которой я спросил, заключалась в том, чтобы убедиться, что это невозможно сегодня, прежде чем я свяжусь с рабочей группой css3. Поэтому, пожалуйста, не отвечайте, если вы не можете выполнить требования в вопросе;)