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
}
createTouch
和ontouchstart
有什么区别?使用哪一种最安全?除了这两个,还有其他一些简单、可靠的替代品吗?
ontouchstart
是基于事件的触发器。当用户执行某些操作时将调用它。更多信息,请访问 ontouchstart event。因此,它更有效地执行基于用户的操作。
虽然 createtouch
将被调用,但无论用户是否执行某些操作都无关紧要。有人请纠正我,如果我错了。 :)
touchstart
当触摸点放在触摸表面上时触发事件([MDN][1])
createTouch
方法创建并 returns 一个新的 Touch 对象。([MDN][2])
从我的角度来看,更好的方法是检测 window 中是否存在事件,而不是仅仅创建它。
此外,您的语句仅检查 window 对象中存在的触摸事件,而不是触摸屏,例如 windows 手机,因此您可能也想检查指针事件。
P.S.: 查看 Modernizr 库,其中有 "touch" 检测等等。
目前,我在 javascript:
中使用它来检测触摸屏设备if ('createTouch' in document) {
// do touchscreen-specific stuff
}
我看到很多开发者使用 ontouchstart
,像这样:
if ('ontouchstart' in document) {
// do touchscreen-specific stuff
}
createTouch
和ontouchstart
有什么区别?使用哪一种最安全?除了这两个,还有其他一些简单、可靠的替代品吗?
ontouchstart
是基于事件的触发器。当用户执行某些操作时将调用它。更多信息,请访问 ontouchstart event。因此,它更有效地执行基于用户的操作。
虽然 createtouch
将被调用,但无论用户是否执行某些操作都无关紧要。有人请纠正我,如果我错了。 :)
touchstart
当触摸点放在触摸表面上时触发事件([MDN][1])
createTouch
方法创建并 returns 一个新的 Touch 对象。([MDN][2])
从我的角度来看,更好的方法是检测 window 中是否存在事件,而不是仅仅创建它。
此外,您的语句仅检查 window 对象中存在的触摸事件,而不是触摸屏,例如 windows 手机,因此您可能也想检查指针事件。
P.S.: 查看 Modernizr 库,其中有 "touch" 检测等等。