読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

タッチデバイスの判定

いつからでしょう?気がついたらデスクトップChromeがTouchEventをサポートしていました。
document.createEvent('TouchEvent')を実行しても例外を発生させてくれず、自作のアプリでマウスとタッチでイベントハンドラを切り替えていたものがデスクトップChromeで動かなくなっていました。

対策として判定条件を

touchDevice = (typeof window.ontouchstart) !== 'undefined';

に変えました。(実際には、window.Touch, document.createEvent('TouchEvent')との合わせ技)
window.ontouchstartはタッチデバイスではnull、デスクトップではundefinedなのでこれで判定できます。
さて、今回はいつまで使えることやら。