关于浏览器兼容处理的几种方式

1、try catch ->在try中执行我们的代码,如果在执行的过程中发生了异常信息,我们在catch中写代替的执行方案
前提:不兼容的情况下,执行对应的代码,需要发生异常错误才可以检测到
弊端:不管是否兼容,都要先执行不兼容的代码,相对来说浪费一些性能

2、利用是否为这个对象的一个属性,来检测是否兼容
例如:window.getComputedStyle,在标准浏览器中兼容,window有getComputedStyle这个属性,我们获取的属性值是一个[function];而在IE6~8中是不兼容的,window下没有getComputedStyle这个属性,我们获取的属性值是undefined;
1)第一种写法

if(typeof window.getComputedStyle==="function"){
//兼容
}else{
//不兼容
}

2)第二种写法

if(window.getComputedStyle){
//兼容
}else{
//不兼容
}

3)第三种写法(我个人比较喜欢这种,在性能上提升了那么一丢丢)

if("getComputedStyle" in window){
//兼容
}else{
//不兼容
}

3、我们已知在哪些浏览器不兼容了,那么我们只需要单独的检测浏览器类型,然后在进行特殊的处理即可

navigator.userAgent ->获取当前浏览器的版本信息
原文地址:https://www.cnblogs.com/Scar007/p/7722877.html