Я думаю, что это невозможно сделать, используя только JavaScript. Давайте так:
Рассмотрим следующую ситуацию:
Я использую Macbook Pro 13in Retina Display, с несколькими сенсорным и мульти жест сенсорной панели.
Теперь Предположим, что если у меня есть настройки жестов в моей операционной системе, если я коснусь двух пальцев, зарегистрируйте его как обычный левый клик, а когда я коснусь одного пальца, зарегистрируйте его как правый щелчок.
Теперь представьте себе, что мы фиксируем оба события, click
и dblclick
, теперь скажите, какое событие будет уволено, когда я сделаю один касание одним пальцем. Это будет dblclick
, и когда я сделаю краном два пальца, это будет событие click
.
Другой случай: Представьте, что у меня есть инвертированная прокрутка на моем компьютере, теперь, когда я прокручу вверх, моя страница будет прокручиваться вниз. И это то, что хром/firefox не контролирует.
Вывод: Там можно варьировать число таких настроек через различные тип операционной системы, через различное количество устройств, такие как трекпады, трекбол, тачпад, мышь, волшебную мыши и т.д. Это дает мне ощущение, что там представляет собой слой между внешним оборудованием и браузером, определяющим события обжига, и этот уровень предоставляется операционной системой. Его операционная система, которая управляет событиями в соответствии с пользовательскими настройками/предустановками.
Могут быть устройства, которые намерены обеспечить и совершить несколько событий, таких как сенсорное устройство, прикосновением к ним срабатывают несколько событий. Но это не относится ко всем устройствам. Поэтому неважно, будете ли вы нажимать мышью или трекболом или с сенсорной панели или с сенсорного экрана, вы получите одно общее событие, которое является click
, и определенно есть вероятность того, что еще несколько событий будут запущены, но они в зависимости от типа устройства, а не от настроек, которые вы сделали в своей операционной системе.
Один из способов захвата - это установление какой-либо связи между вашей веб-страницей браузера и операционной системой, как это предлагает @AlvaroSanz.
Вы не можете. Нет такого API. –