habrahabr

Почему на touch-ноутбуках некоторые SPA перестали поддерживать touch-события

  • четверг, 8 ноября 2018 г. в 00:17:43
https://habr.com/post/429052/
  • Google Chrome
  • JavaScript


Возможно, я только сейчас разглядел, а всё уже давно знают, но оказывается, что в Chrome 70 сделали вот такое: The ontouch* APIs default to disabled on desktop

Соответственно, если в своём коде вы опирались на наличие ключей 'ontouch*' в document или window, ваш код перестанет определять, что работает на touch-устройстве.

Я напоролся у себя на опечатку:

var isTouchDevice = (('ontouchstart' in window) || (navigator.MaxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0));

И когда первое условие перестало быть true, второе облажалось. Должно было быть navigator.maxTouchPoints

А вот, к примеру, в jQuery UI Touch Punch 0.2.3 используется вот такой код:

  $.support.touch = 'ontouchend' in document;

Соответственно, также теряется поддержка.