检查浏览器是否支持JavaScript中的document.querySelectorAll

时间:2014-03-09 19:16:17

标签: javascript internet-explorer dom cross-browser document

现在虽然大多数现代浏览器支持document.querySelectorAll(),但您可能会遇到旧版Internet Explorer的问题。检查浏览器是否支持函数的显而易见的方法是:

if(document.querySelectorAll){
    //some random code
}

但据我所知,某些浏览器(IE8)不支持某些属性,例如“body *”。有没有更好的方法来检查document.querySelectorAll('body *')是否真的有效?

3 个答案:

答案 0 :(得分:5)

document.querySelectorAll会抛出任何不受支持的选择器,因此您只需使用try-catch块。

答案 1 :(得分:2)

是否支持浏览器支持,没有try-catch

function supportsQuerySelectors() {
  return (document['querySelector']&&document['querySelectorAll'])!=null;
}

function supportsQuerySelectors2(){
  return typeof(document['querySelector'])=='function'&&typeof(document['querySelectorAll'])=='function';
}

thanx:http://htmlgoodies.com/beyond/javascript/using-javascripts-css3-selectors.html

答案 2 :(得分:-2)

使用 typeof 进行检查:

 if(typeof(document.querySelectorAll) != 'undefined'){
      //some random code
 }