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

5

目前,在我的 JavaScript 中,用于检测触摸屏设备的代码如下:

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

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

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

createTouchontouchstart有什么区别?哪个更安全?除了这两个之外,还有哪些简单可靠的替代方案呢?

2个回答

3

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

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

从我的角度来看,更好的方法是检测窗口中是否存在事件,然后再创建它。

此外,您的语句仅检查窗口对象中触摸事件的存在,而不是像Windows手机这样的触摸屏幕,因此您可能还想检查指针事件。

P.S.:请查看Modernizr库,该库具有“touch”检测和更多功能。


2

ontouchstart是事件触发器。当用户执行某些操作时,它将被调用。更多信息请参见ontouchstart事件。因此,它更适合执行基于用户的动作。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接