a browser detector
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 bowsermsie && bowserversion <= 6alert'Hello China';
For all detected browsers the browser version is set in the
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
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.
Safari, Chrome and some other minor browsers will report that they have
webkit engines, Firefox and Seamonkey will report that they have
if bowserwebkit// do stuff with safari & chrome & opera & android & blackberry & webos & silk
if require'bowser'chromealert'Hello Silicon Valley'
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 bowsera// support full feature setelse if bowserc// serve degraded versionelse// unsupported (bowser.x)
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.min.js in pull requests.
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.