Spec-Zone.ru › Web APIs

API возможностей устройств ввода

Экспериментально: Это экспериментальная технология
Перед использованием в продуктовой среде внимательно изучите таблицу совместимости браузеров.

API InputDeviceCapabilities предоставляет подробную информацию об основных источниках событий ввода. API пытается описать поведение устройства, а не то, что это за устройство. Например, первая версия API указывает, генерирует ли устройство события touch, а не является ли оно сенсорным экраном.

Концепции и использование возможностей устройств ввода

Так как события DOM абстрагируют ввод устройств, они не предоставляют способа узнать, какое устройство или тип устройства сгенерировало событие. Это может привести к случаям, когда одно и то же действие вызывает несколько обработчиков событий. Для решения этой проблемы разработчики делают предположения и используют эвристики для нормализации поведения на веб-страницах.

API InputDeviceCapabilities решает эту проблему, абстрагируя возможности устройств ввода. Например, предположим, что у нас есть веб-страница, которая реализует как событие touchstart , так и событие mousedown. Мы можем предположить, что если событие touchstart сгенерировано, то устройство пользователя имеет сенсорный интерфейс. А что происходит при генерации события mousedown? Было бы полезно узнать, было ли также сгенерировано событие touchstart, чтобы не выполнять одно и то же действие дважды. Это можно сделать, проверив свойство sourceCapabilities у объекта UIEvent.

myButton.addEventListener("mousedown", (e) => {
  // Touch event case handled above, don't change the style again on tap.
  if (!e.sourceCapabilities.firesTouchEvents) myButton.classList.add("pressed");
});

Интерфейсы

InputDeviceCapabilities Экспериментально

Предоставляет логическую информацию об устройстве ввода.

Расширения других интерфейсов

UIEvent.sourceCapabilities Экспериментально Только для чтения

Возвращает экземпляр интерфейса InputDeviceCapabilities, который предоставляет информацию о физическом устройстве, ответственном за генерацию события touch.

Спецификации

Спецификация
Возможности устройств ввода
# dom-inputdevicecapabilities

Совместимость браузеров

Десктоп Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
InputDeviceCapabilities 47 79 Нет 34 Нет 47 Нет 34 Нет 5.0 47
InputDeviceCapabilities_API 47 79 Нет 34 Нет 47 Нет 34 Нет 5.0 47
firesTouchEvents 47 79 Нет 34 Нет 47 Нет 34 Нет 5.0 47

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/InputDeviceCapabilities_API

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API