You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Hannes Diercks 89cffac4a5
Make testable and add tests.
11 years ago
make rebuild and new relase for IE, Opera, & Phantom 11 years ago
src Make testable and add tests. 11 years ago
test Make testable and add tests. 11 years ago
.gitignore boosh 13 years ago
Makefile Make testable and add tests. 11 years ago
README.md Make testable and add tests. 11 years ago
bowser.js Added Chrome for iOS 11 years ago
bowser.min.js bump for new 'crios': Chrome for iOS 11 years ago
package.json Make testable and add tests. 11 years ago

README.md

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)
}

Building

Simply $ npm install and $ make inside the bowser folder.

Testing

We started a list src/useragents.js with example user agents and their expected bowser object.

Whenever you add support for new browsers or notice a bug / mismatch, please update the list and check if all tests are still passing.

To run the test call $ make test and hope for green light ;)