问题
Is there a native JavaScript (or through the use of a library such as JQuery/Modernizr etc) way to detect if a device is capable of changing orientation? I would like to use that as a method to differentiate between desktop and mobile.
Thanks,
Shadi
回答1:
Detecting mobile devices:
Simple browser sniffing
if (/mobile/i.test(navigator.userAgent)) {...}
jQuery.browser.mobile plug-in (exhaustive browser sniffing)
Simple test for touch events
if ('ontouchstart' in window) {...}
Advanced test for touch events:
if (('ontouchstart' in window) || // Advanced test for touch events (window.DocumentTouch && document instanceof DocumentTouch) || ((hash['touch'] && hash['touch'].offsetTop) === 9)) {...}
Optionally use onorientationchange
for #3 and #4 above.
Combine 1 or more of these (and any other approaches) as needed. None of them are foolproof.
来源:https://stackoverflow.com/questions/13803838/detecting-if-a-device-is-able-to-change-orientation-in-javascript