2015-06-17 3 views
0

Я создал веб-приложение, которое хорошо работает с событиями касания и событиями щелчка со своими соответствующими обработчиками.IE11 шунтирующий указатель событий в событиях касания?

Однако проблемы возникают при переходе на IE11. Touch отлично работает на других платформах. Мышь на IE11 отлично работает. Но если вы используете как сенсорный экран, так и IE11, то события касания завершаются как события указателя, а не события касания или события кликов.

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

Я попытался следующий пример кода, как показано здесь: JavaScript mapping touch events to mouse events

И в конечном итоге с:

if(window.PointerEvent) 
{ 
    ... 
    document.onpointerdown = function(e){ 
     var event = document.createEvent("TouchEvent"); 
     ... 
    } 
    ... 
} 

Однако, Ошибки IE в document.crateEvent («TouchEvent»), утверждая, что он «не поддерживается». Однако объект TouchEvent документирована в IE, как поддерживается: https://msdn.microsoft.com/en-us/subscriptions/dn792856(v=vs.85) , как указано в http://www.w3.org/TR/touch-events/#list-of-touchevent-types

Я также попытался изменить его

var event = document.createEvent("UIEvent"); 

, которая позволяет IE, но это позже, не признает

event.initTouchEvent(someParameters); 

Я начинаю верить, что IE11 не поддерживает создание сенсорных событий.

Я также видел, говорить об изменении .css файлы включают комбинации:

touch-action: none 
ms-touch-action: none 
pointer-events: none 

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

Есть ли способ активировать события касания вместо событий указателя Microsoft?

+0

Вы пытаетесь сделать это через рабочий стол IE11 или через Metro IE11 – DCdaz

+0

Технически, оба. Обе версии IE11, а также внешний вид Windows 8.1 (приложение Visual Studio .jsproj), похоже, поддерживают/не поддерживают одни и те же вещи здесь. – user1519665

ответ

0

Я бы сказал, что вы на самом деле делаете это неправильно. Существует несколько библиотек pollyfill для отображения событий касания к событиям указателя. HandJS и jQuery PEP - два хорошо функционирующих примера. Учитывая, что единственным современным браузером, который не поддерживает события указателя в это время, является Safari, что кажется лучшим способом (Who wants pointer events...).

+0

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

Смежные вопросы