User Agent testing sucks, but sometimes you need it for subtle things. In my case I was using it to adjust what I was showing for keyboard shortcut keys (Command or Control). Nothing super major.
if (navigator.userAgent.indexOf('Mac OS X') != -1) {
$("body").addClass("mac");
} else {
$("body").addClass("pc");
}
The statements in there use jQuery to add a body class, but that’s not required, you could do whatever.
This may be overkill for your intended use, however it really comes in handy if you need to nudge items or if things aren’t quite right on mobile devices.
http://rafael.adm.br/css_browser_selector/
Trying to solve the same problem of showing Cmd vs Ctrl, I found this snippet. But what if someone uses Linux on a Mac (with a Mac keyboard)? I have posted this question on stackoverflow as well.
would like to add that we can also add navigator object with platform property…….object.platform…it can specifically tell for ex: wether it is macintosh 68k or windows 64bit…..
just what a needed to check if it’s a MAC for an .exe file download link (to put a different link for macs)
You can set a class in combination with a file type selector
.mac a[href$=”.dmg”] { STLYE }
.pc a[href$=”.exe”] { STLYE }
Is this what you are shooting for?
Thanks Mate, It really saved my couple of hours.
can anyone one advise on how to do this with plain javascript not jquery?
Instead of
$("body").addClass(<classname>);
, you can usedocument.body.classList += <classname>;
, ordocument.body.setAttribute("class", <classname>);
Everything else is the same in javascript as it is with jQuery.While user agents can and often are spoofed or ambiguous to begin with,
navigator.platform
returns the actual platform and isn’t spoofed when the user agent is. Therefore, I like to testnavigator.platform
forMacPPC
orMacIntel
(though I don’t think anyone ever uses PPC Macs anymore).I was just going to comment this – navigator.platform is the best way to go.
Can we use it to detect Linux. If it can will it detect all linux version or would it only detect aparticular distro like Fedora and Ubuntu.
plain sample of how to do with JS
http://codepen.io/anon/pen/reLWoQ