Если вы используете Modernizr , очень просто использовать Modernizr.touch
, как упоминалось ранее.
Однако я предпочитаю использовать комбинацию Modernizr.touch
и тестирование пользовательского агента, просточтобы быть в безопасности.
var deviceAgent = navigator.userAgent.toLowerCase();
var isTouchDevice = Modernizr.touch ||
(deviceAgent.match(/(iphone|ipod|ipad)/) ||
deviceAgent.match(/(android)/) ||
deviceAgent.match(/(iemobile)/) ||
deviceAgent.match(/iphone/i) ||
deviceAgent.match(/ipad/i) ||
deviceAgent.match(/ipod/i) ||
deviceAgent.match(/blackberry/i) ||
deviceAgent.match(/bada/i));
if (isTouchDevice) {
//Do something touchy
} else {
//Can't touch this
}
Если вы не используете Modernizr, вы можете просто заменить приведенную выше функцию Modernizr.touch
на ('ontouchstart' in document.documentElement)
Также обратите внимание, что тестирование агента пользователя iemobile
даст вам более широкий диапазон обнаруженных мобильных устройств Microsoft, чем Windows Phone
.
Также см. этот вопрос SO