web-dev-qa-db-ja.com

デバイスがJavaScriptで向きを変更できるかどうかの検出

デバイスが向きを変更できるかどうかを検出するためのネイティブJavaScript(またはJQuery/Modernizrなどのライブラリの使用による)方法はありますか?それをデスクトップとモバイルを区別する方法として使いたいと思います。

ありがとう、

シャディ

6
Shadi Almosri

モバイルデバイスの検出:

  1. シンプルなブラウザスニッフィング

    if (/mobile/i.test(navigator.userAgent)) {...}
    
  2. jQuery.browser.mobile プラグイン(徹底的なブラウザスニッフィング)

  3. タッチイベントの簡単なテスト

    if ('ontouchstart' in window) {...}
    
  4. タッチイベントの高度なテスト:

    if (('ontouchstart' in window) ||     // Advanced test for touch events
       (window.DocumentTouch && document instanceof DocumentTouch) ||
       ((hash['touch'] && hash['touch'].offsetTop) === 9)) {...}
    

オプションで、上記の#3と#4にonorientationchangeを使用します。

必要に応じて、これらの1つ以上(およびその他のアプローチ)を組み合わせます。それらのどれも絶対確実ではありません。

18
Matt Coughlin