javascript如何判断浏览器的类型?

x33g5p2x  于2022-02-22 转载在 JavaScript  
字(1.3k)|赞(0)|评价(0)|浏览(528)

在前端开发中存在很多的浏览器,那么我们如何检测出浏览器的类型,下面我们主要总结一下。
一、userAgent
我们可以通过usrAgent来进行判断浏览器的类型。

const explorer = window.navigator.userAgent
    if(explorer.indexOf("MSIE") >= 0) {
      console.log("IE")  //判断是否为IE浏览器
    }else if(explorer.indexOf("Firefox") >= 0) {
      console.log("Firefox")  //是否为Firefox浏览器
    }else if(explorer.indexOf("Chrome") >= 0) {
      console.log("Chrome")  //是否为Chrome浏览器
    }else if(explorer.indexOf("Opera") >= 0) {
      console.log("Opera")   //是否为Opera浏览器
    }else if(explorer.indexOf("Safari") >= 0) {
      console.log("Safari")  //是否为Safari浏览器
    }

但是通过userAgent来判断为哪个浏览器时,不够严谨,因为userAgent是可以被修改的。
二、可以通过各浏览的特征来进行判断
一、IE
我们可以判断window上是否存在ActiveXObject函数来进行判断。

二、Safari浏览器
Safari浏览器存在其他浏览器中没有的一个函数,openDatabase函数,我们可以通过openDatabase函数的有无来进行判断。
三、Chrome浏览器
Chrome浏览器中存在MessageEvent函数,不过Firefox也存在。但是Firefox中不存在getBoxObjectFor函数。
四、Firefox浏览器
可以使用getBoxObjectFor来判断是否为Firefox浏览器。
五、Opera浏览器
可以使用window.Opera来判断是否为Opera浏览器

if(window.ActiveXObject) {
    console.log("IE")
  }else if(document.getBoxObjectFor) {  //只有火狐有
    console.log("Firefox")
  }else if(window.MessageEvent && !document.getBoxObjectFor) {
    console.log("Chrome")
  }else if(window.opera) {
    console.log("Opera")
  }else if(window.openDatebase) {
    console.log("safair")
  }

相关文章