Now although most modern browser support document.querySelectorAll()
, you may run into problems with older versions of Internet Explorer. The obvious way of checking if the browser supports a function would be:
if(document.querySelectorAll){
//some random code
}
But from what I understand some browsers like (IE8) don't support certain properties, like 'body *
'. Is there a better way to check if document.querySelectorAll('body *')
will actually work?
Now although most modern browser support document.querySelectorAll()
, you may run into problems with older versions of Internet Explorer. The obvious way of checking if the browser supports a function would be:
if(document.querySelectorAll){
//some random code
}
But from what I understand some browsers like (IE8) don't support certain properties, like 'body *
'. Is there a better way to check if document.querySelectorAll('body *')
will actually work?
-
1
IE8 supports CSS2 selectors only, but wouldn't
body *
be a CSS2 selector ? – adeneo Commented Mar 9, 2014 at 19:17 - Exactly that's the problem I'm having. I am looking for a way to test this. – Ood Commented Mar 9, 2014 at 19:18
-
What does
body *
do in IE8? – Felix Kling Commented Mar 9, 2014 at 19:18 -
I don't think you understood, wouldn't
body *
work in IE8, it looks like a CSS2 selector to me, and should work ? – adeneo Commented Mar 9, 2014 at 19:19 - What says the console? – Adrian Preuss Commented Mar 9, 2014 at 19:19
3 Answers
Reset to default 5document.querySelectorAll
will thrown on any unsupported selector so you can simply use a try-catch
block.
Check browser supports or not , without try-catch :
function QuerySelectors() {
return (document['querySelector']&&document['querySelectorAll'])!=null;
}
or
function QuerySelectors(){
return typeof(document['querySelector'])=='function'&&typeof(document['querySelectorAll'])=='function';
}
Read more > Reference
Use typeof to check it:
if(typeof(document.querySelectorAll) != 'undefined'){
//some random code
}