2015-02-24 78 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方法創建並返回一個新的觸摸對象