Как я могу проверить наличие реальной поддержки сенсорного ввода в браузере

Сегодня (или совсем недавно) Chrome Beta обновился до 17 для меня, и с ним я заметил некоторую странность в моем веб-приложении. Я заметил, что это произошло потому, что к элементу body добавлялся класс, который обычно помещается туда только при наличии поддержки событий касания, которую я проверяю следующим образом:

  try {  
    document.createEvent("TouchEvent");
    _device.touch = true;
  } catch (e) {
    _device.touch = false;
  }

И, конечно же, я могу создавать и запускать события касания в Chrome 17. Первая идея, которая у меня возникла, заключалась в том, что я могу проверить касание и посмотреть, не срабатывает ли щелчок мышью, следовательно, есть мышь, но триггер MouseEvents тоже.

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

20
задан Oscar Godson 6 January 2012 в 20:25
поделиться