- Published on
javascriptでモバイル端末かどうかを判定する簡単な方法
cssのメディアクエリ(media query)のようにjavascriptでモバイル・スマートフォンかを判別して、 何らかの処理をしたい場合の簡単な方法を紹介します。
実はIE10からサポートされていて、media queryを使って判別する方法があります。 例えば、mobileデバイスかどうかを判別する場合は、下記のようなコードで判別ができます。
const isMobile = () => window.matchMedia('(max-width: 800px)').matches if (isMobile()) { console.log('スマートフォン・モバイル・タブレット') } else { console.log('PC') }
このようにwindow.matchMedia
にmax-width
でデバイスの最大値を指定してあげれば、
cssで使っているように画面の大きさに応じて何らかの処理を記述することが可能になります。
ちなみにIE9以下では、window.innerWidth
とwindow.innerHeight
を使ってあげればよいです。
function isMobile() { return ( ( window.innerWidth <= 800 ) && ( window.innerHeight <= 600 ) ); } if (isMobile()) { console.log('スマートフォン・モバイル・タブレット') } else { console.log('PC') }
また、その他にもuserAgentに応じてデバイスを判断する方法もありますが、 下記にもあるようにまだuserAgentをサポートしていないブラウザはたくさんあるので、避けたほうが良いです。 https://caniuse.com/mdn-api_navigator_useragentdata