2015-02-24 75 views
5

目前,在我的JavaScript检测我用这个触摸屏设备:createTouch vs ontouchstart - 检测触摸屏设备的最佳方式?

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

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

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

是什么createTouchontouchstart之间的区别?哪一个是最安全的使用?还有其他一些简单而可靠的替代方案吗?

回答

3

touchstart事件被触发。([MDN] [2])

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

此外,您的语句仅检查窗口对象中是否存在触摸事件,而不是触摸屏,比如Windows Phone,因此您可能也想检查指针事件。

P.S .:看Modernizr图书馆有“触摸”检测等等。

2

ontouchstart是基于事件的触发器。它会在用户做某些动作时被调用。更多信息请登录ontouchstart event。因此,执行基于用户的操作更为有效。

虽然createtouch将被调用,不管用户是否做了一些动作。有人请纠正我,如果我错了。 :)当触摸点被放置在触摸表面([MDN] [1])

createTouch方法创建并返回一个新的触摸对象