1
0
mirror of https://github.com/lancedikson/bowser synced 2024-09-29 06:40:44 +00:00
Go to file
Martino di Filippo 601eac6897 Avoid exception when unable to match UA
Make detect() return an empty object if it hasn't matched any known browser, so that graded browser support (and any external code using this library) doesn't raise a "Cannot read property ... of undefined" exception
2013-06-27 19:41:01 +02:00
make - bump version for ios fix 2012-02-07 11:00:32 -08:00
src Avoid exception when unable to match UA 2013-06-27 19:41:01 +02:00
.gitignore boosh 2011-04-27 15:14:35 -07:00
bowser.js Add support for detecting PhantomJS 2012-07-18 18:45:20 +01:00
bowser.min.js - add touchpad support 2012-04-16 18:54:24 -07:00
Makefile boosh 2011-04-27 15:14:35 -07:00
package.json - add touchpad support 2012-04-16 18:54:24 -07:00
README.md - adds graded support 2011-05-10 09:50:28 -07:00

Bowser

A Browser detector. Because sometimes, there is no other way, and not even good modern browsers always provide good feature detection mechanisms.

So... it works like this:

if (bowser.msie && bowser.version <= 6) {
  alert('Hello China');
}

Detected Browsers

  • msie
  • safari[webkit]
  • chrome[webkit]
  • firefox[gecko]
  • opera

Notes

Safari, Chrome, and Firefox will report that they have webkit|gecko engines

if (bowser.webkit) {
  // do stuff with safari & chrome
}

Ender installation

If you don't already have Ender (an npm package) install it now (and don't look back)

$ npm install ender

then add bowser to your module collection

$ ender add bowser

use it like this:

if ($.browser.chrome) {
  alert('Hello Silicon Valley');
}

Graded Browser Support

One useful feature of Bowser is that aside from checking one browser from another -- it will keep up to date with Yahoo's Graded Browser Support chart, giving you access to each grade on the bowser object

if (bowser.a) {
  // support full feature set
}
else if (bowser.c) {
  // serve degraded version
}
else {
  // unsupported (bowser.x)
}