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
Denis Demchenko d8c3e907be
add .md to editorconfig
8 years ago
make rebuild and new relase for IE, Opera, & Phantom 11 years ago
src Merge branch 'QupZilla' of git://github.com/yconoclast/bowser into yconoclast-QupZilla 8 years ago
test officially change export to be the `bowser` object directly 9 years ago
.editorconfig add .md to editorconfig 8 years ago
.gitignore ignore .idea folder 8 years ago
.travis.yml new travis integration 10 years ago
LICENSE adds license 9 years ago
Makefile change reporter to spec 9 years ago
README.md Merge branch 'QupZilla' of git://github.com/yconoclast/bowser into yconoclast-QupZilla 8 years ago
bowser.js rebuild 9 years ago
bowser.min.js rebuild 9 years ago
component.json fix version in component.json 9 years ago
package.json 1.0.0 9 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.

bowser ci

So... it works like this:

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

1.0.0 breaking changes

browser = require('bowser').browser; becomes browser = require('bowser');

Flags set for detected Browsers[Engines]

  • chrome[webkit]
  • firefox[gecko]
  • msie
  • msedge
  • Android native browser as android[webkit]
  • iOS native browser as ios[webkit]
  • opera[webkit if >12]
  • phantom[webkit]
  • safari[webkit]
  • seamonkey[gecko]
  • BlackBerry native browser as blackberry[webkit]
  • WebOS native browser as webos[webkit]
  • Amazon Kindle browser as silk[webkit]
  • Bada browser as bada[webkit]
  • Tizen browser as tizen[webkit]
  • Sailfish browser as sailfish[gecko]
  • UC Browser as ucbrowser[webkit]
  • QupZilla browser as qupzilla[webkit]

For all detected browsers the browser version is set in the version field.

Flags set for detected Operating Systems

  • mac
  • Windows other than Windows Phone as windows
  • Windows Phone as windowsphone
  • linux for Linux other than android, chromeos, webos, tizen, and sailfish
  • chromeos
  • android
  • ios (iphone/ipad/ipod)
  • blackberry
  • firefoxos
  • webos (touchpad)
  • bada
  • tizen
  • sailfish

Android, iOS, Windows Phone, WebOS, Bada, and Tizen will all report the OS version number if it is contained in the UA string in the osversion field. iOS is always reported as ios and additionally as iphone/ipad/ipod, whichever one matches best. If WebOS device is an HP TouchPad the flag touchpad is additionally set.

All detected mobile OSes are additionally flagged mobile, if they are not powering a tablet device. If a tablet device is detected, the flag tablet is set instead.

Notes

Safari, Chrome and some other minor browsers will report that they have webkit engines, Firefox and Seamonkey will report that they have gecko engines.

if (bowser.webkit) {
  // do stuff with safari & chrome & opera & android & blackberry & webos & silk
}

Ender Support

package.json

"dependencies": {
  "bowser": "x.x.x"
}
if (require('bowser').chrome) {
  alert('Hello Silicon Valley')
}

Graded Browser Support

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

Contributing

If you'd like to contribute a change to bowser, modify the files in src/, then run the following (you'll need node + npm installed):

$ npm install
$ make test

Please do not check-in the built files bowser.js and bowser.min.js in pull requests.

Adding tests

See the list in 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.

License

Licensed as MIT. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.