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

createTouch vs ontouchstart - best way to detect touchscreen devices?

本文关键字:最佳 方式 触摸屏 vs ontouchstart- 检测 createTouch      更新时间:2024-04-23

目前,为了检测触摸屏设备,我在javascript:中使用了这个

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

我看到许多开发人员使用ontouchstart,比如:

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

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

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

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

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

此外,您的语句只检查窗口对象中现有的触摸事件,而不是像windows手机那样的触摸屏,所以您可能也想检查指针事件。

附言:看看Modernizr库,它有"触摸"检测等等。

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

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