mirror of
https://github.com/lancedikson/bowser
synced 2024-10-27 20:34:22 +00:00
7f4376f262
When the 'define' function exists, bowser tried to register itself against it. The problem is that it does not supply a name for the definitation, causing it to be lost forever. The second problem has to do with semi-colons. When the source file is minified with uglify it breaks horibly. I've added ending semi- colons where to ending control statements, which allows it to be compatible with the majority of other compressors. |
||
---|---|---|
make | ||
src | ||
.gitignore | ||
bowser.js | ||
bowser.min.js | ||
Makefile | ||
package.json | ||
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)
}