W przeszłości, kiedy wykrywanie, czy urządzenie obsługuje dotykowe zdarzeń w JavaScript, moglibyśmy zrobić coś takiego:Jak wykryć obsługę dotykową urządzenia w JavaScript?
var touch_capable = ('ontouchstart' in document.documentElement);
Jednak Google Chrome (17.x.x +) zwraca true
dla powyższego czeku, nawet jeśli podstawowe urządzenie nie obsługuje zdarzeń dotykowych. Na przykład, działa powyższy kod na Windows 7 zwraca true, a więc jeśli połączymy go z czymś takim:
var start_evt = (touch_capable) ? 'ontouchstart' : 'onmousedown';
Na Google Chrome, zdarzenie nigdy nie jest zwolniony od mamy wiązanie z ontouchstart
. Krótko mówiąc, czy ktoś zna wiarygodny sposób na obejście tego? Jestem aktualnie uruchomione następujące sprawdzenia:
var touch_capable = ('ontouchstart' in document.documentElement && navigator.userAgent.toLowerCase().indexOf('chrome') == -1)
to daleko od ideału ...
Poprawnie - natomiast mam (i miłość) tablet PC, czasami mam mysz i nie boję się go używać. –
Dziękuję. Tak naprawdę jest to wtyczka jQuery, a ja raczej nie dodaję wstępnego warunku Modernizr. Jednak z jakiegoś powodu 'window.DocumentTouch && documentof DocumentTouch' zwraca' undefined' ... – BenM
@BenM wiesz, że możliwe jest zbudowanie niestandardowego pobierania Modernizr, który będzie zawierał tylko te testy, których potrzebujesz? – Alnitak