createTouch vs ontouchstart - 检测触摸屏设备的最佳方式?

createTouch vs ontouchstart - best way to detect touchscreen devices?

目前,我在 javascript:

中使用它来检测触摸屏设备
if ('createTouch' in document) {
// do touchscreen-specific stuff 
}

我看到很多开发者使用 ontouchstart,像这样:

if ('ontouchstart' in document) {
// do touchscreen-specific stuff 
}

createTouchontouchstart有什么区别?使用哪一种最安全?除了这两个,还有其他一些简单、可靠的替代品吗?

ontouchstart 是基于事件的触发器。当用户执行某些操作时将调用它。更多信息,请访问 ontouchstart event。因此,它更有效地执行基于用户的操作。

虽然 createtouch 将被调用,但无论用户是否执行某些操作都无关紧要。有人请纠正我,如果我错了。 :)

touchstart 当触摸点放在触摸表面上时触发事件([MDN][1])

createTouch 方法创建并 returns 一个新的 Touch 对象。([MDN][2])

从我的角度来看,更好的方法是检测 window 中是否存在事件,而不是仅仅创建它。

此外,您的语句仅检查 window 对象中存在的触摸事件,而不是触摸屏,例如 windows 手机,因此您可能也想检查指针事件。

P.S.: 查看 Modernizr 库,其中有 "touch" 检测等等。