Detecting mobile browsers on the web?

前端 未结 4 1338
慢半拍i
慢半拍i 2020-12-17 04:14

I\'m curious to know how to check for iPhone, iPad and other mobile browsers.(JavaScript or CSS)

Edit:

Not user agent string, please. That can be faked.

相关标签:
4条回答
  • 2020-12-17 04:50

    Use javascript to detect the HTTP User Agent - fancy term for name of the browser

    0 讨论(0)
  • 2020-12-17 04:55

    I would use WURFL. It's an Open Source xml-database of more than 10000 mobile devices that will detect (almost always) your Mobile Phone and Browser capabilities given the user-agent HTTP header value.

    You will get information like:

    1. Screen size
    2. XHTML/HTML support level
    3. Graphic type support

    Many others.

    There are wrapper APIs for popular languages such as PHP, Java and .NET, so you won't have to deal with the XML database yourself.

    0 讨论(0)
  • 2020-12-17 05:00

    Use Modernizr - http://modernizr.com/

    Modernizr is a JS script that tests the browser for a variety of HTML5 and CSS3 capabilities when the page loads. You can either look in the Modernizr JS object, or use the classes it adds to the HTML element. If the class 'touch' is present, you have a touchscreen device; otherwise, the class is no-touch. Then you can do this in your CSS

    .touch .myElement { /* touch device styles */ }
    
    .no-touch .myElement { /* regular browser styles */ }
    

    Testing a browsers capabilities is far more useful and future-proof that sniffing for user agents. In this way, for each CSS3 feature you want to add, you can easily write a fallback, as I show here.

    0 讨论(0)
  • 2020-12-17 05:04

    Basically you check the User Agent String

    see http://www.hand-interactive.com/resources/detect-mobile-javascript.htm

    Detect iPhone:

    navigator.userAgent.toLowerCase().search("iphone") > -1
    

    In general feature detection is better than browser detection it is better to know what the user's browser can do than what he's using. Modernizer is a good tool for that.

    0 讨论(0)
提交回复
热议问题