【问题标题】:Will/Does IE10 Support Touch Events?IE10 是否支持触摸事件?
【发布时间】:2011-10-22 14:58:27
【问题描述】:

我正在考虑做一个使用触摸屏以 Internet Explorer 10 为目标的项目。我目前手边没有触摸屏,但需要知道 Internet Explorer 10 是否支持或将支持 DOM 触摸事件。

【问题讨论】:

    标签: events dom touch internet-explorer-10


    【解决方案1】:

    更新:在 Internet Explorer 中,触摸事件为 in development

    虽然 IE10 不支持 touchstarttouchend 类型的事件,但它将支持由指针组成的可以说是更高级的模型。这些通用指针捕获来自笔、鼠标和手指的输入。在 2011 年 9 月发布的 Touch Input for IE10 and Metro style Apps 帖子中提供了很好的入门知识。

    您应该能够让旧的 touch 模型与 MSPointer 模型很好地配合,只需稍加特征检测和聪明的脚本编写:

    var elm = document.getElementById("#foo"),
        evt = window.navigator.msPointerEnabled ? "MSPointerDown" : "touchstart";
    
    elm.addEventListener(evt, handler, false);
    

    更多关于指针和手势事件的信息可以在这里找到:http://msdn.microsoft.com/en-US/library/ie/hh673557.aspx

    重要进展

    【讨论】:

    • MSPointerDown 自 IE11 起已被弃用
    • @andreszs 您能否提供此信息的来源?
    • @SebastianBarth 如你所见here MS 前缀是第一次实现的,因为当 IE10 发布时,W3C 规范还没有准备好。当 IE11 出现时,规范已达到 候选推荐 状态,MS 供应商前缀版本已被弃用,取而代之的是非前缀签名。所以从IE11开始你必须使用PointerDown等。
    【解决方案2】:

    IE 10 似乎不支持 iOS 和其他移动浏览器使用的“touchstart”系列事件。然而,IE 10 确实支持使用它们自己的“MSPointer”事件的多点触控事件。请参阅http://msdn.microsoft.com/en-us/ie/hh272903#_DOMTouch 了解详细信息和示例网站,例如http://ie.microsoft.com/testdrive/Graphics/TouchEffects

    【讨论】:

    • 只是想补充一点:MSPointer 比那些触摸事件更好,因为它支持任何类型的指针设备。例如,笔+触控+鼠标组合同时使用是没有问题的。在我看来,它的实现比 iOS 的 touchstart 等要好得多。
    • 我同意 Tower 的观点,它可能更智能,但它可以为人们带来更多的工作。
    • 触控、笔和鼠标是三种不同的交互范式。你的手指不像鼠标那样工作。这不是一个优越的解决方案,而是一个泥泞的解决方案。
    • @Tower 注意到 MS 前缀已经是 dropped since IE11,现在它可以在所有没有前缀的浏览器中使用。