我已经创建了一个适用于触摸事件和点击事件的Web应用程序,并且可以使用各自的处理程序。
但是,移动触摸IE11时会遇到问题。 Touch在其他平台上运行良好。 IE11上的鼠标效果很好。但是如果同时使用触摸屏和IE11,则触摸事件将被包装为指针事件,而不是触摸事件或单击事件。
有没有办法将指针触摸事件全局映射到整个窗口/文档的预定义触摸事件?对于IE11中的点击事件,它似乎已默认执行此操作...
我尝试按照此处显示的代码示例:JavaScript mapping touch events to mouse events
结束了:
if(window.PointerEvent)
{
...
document.onpointerdown = function(e){
var event = document.createEvent("TouchEvent");
...
}
...
}
但是,document.crateEvent(" TouchEvent")中的IE错误声称它不被支持。"但是,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
但完全禁用触摸往往会以我希望避免的其他方式破坏应用程序。
有没有办法触发触摸事件而不是微软的指针事件?
答案 0 :(得分:0)
我会说你实际上是错误的。有几个pollyfill库可以将触摸事件映射到指针事件。 HandJS和jQuery PEP是两个运作良好的示例。鉴于此时唯一不支持指针事件的现代浏览器是Safari,这似乎是更好的方法(Who wants pointer events...)。