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

3

现在虽然大多数现代浏览器都支持document.querySelectorAll(),但是你可能会在旧版本的Internet Explorer中遇到问题。检查浏览器是否支持某个函数的明显方法是:

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

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

1
IE8仅支持CSS2选择器,但body *不是CSS2选择器吗? - adeneo
确切地说,这就是我遇到的问题。我正在寻找一种测试的方法。 - Ood
body * 在 IE8 中是什么意思? - Felix Kling
我认为你可能没有理解,body * 在IE8中不起作用吗?在我看来,它看起来像是CSS2选择器,应该可以工作的。 - adeneo
控制台输出了什么? - Adrian Preuss
显示剩余2条评论
3个回答

5

document.querySelectorAll 会在不支持的选择器上抛出错误,所以您可以使用 try-catch 块来处理。


4

检查浏览器是否支持某项功能,不使用try-catch:

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

或者

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

阅读更多 > 参考资料


-2

使用 typeof 进行检查:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接