I need a quick and dirty way to detect media query support using jquery. I defined a function as follows:
function mediaQueriesEnabled () {
var v = parseFloat($.browser.version);
if ($.browser.msie) {
if (v < 9)
return (false);
}
return (true);
}
Can someone help me fix this up a bit? Looking at this page:
http://caniuse.com/css-mediaqueries
I realized that there are some complexities here. For example, when I test my version of safari, I get "534.57.2". I want to avoid installing modernizr for now, mainly because I'm in a crunch and I need to handle most situations in the short term. Any help is appreciated!
Here's some working code that is based on @Kolink's answer. So far this code works great... I'll post back to this thread if I have any edits.
The Javascript:
The CSS (I added this to my main stylesheet file):
EDIT: I'm no longer curating this answer as I feel that Niet's is much better (see chosen answer). It should still work, but may need some testing.
Cracking open Modernizr (which can test for media queries) we see it uses the
window.matchMedia
(MDN page) function. We can check in plain old vanilla JS to see if this function exists:Or more elegantly:
JSFiddle
I've tested in the following browsers that support media queries, all correctly returned true:
I've tested in the following browsers that do not support media queries, all correctly returned false:
You can create a stylesheet with a media query and see if it works.
In your HTML:
(Or you could dynamically create the stylesheet, but that's harder)
Then in your script: