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

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

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

  1. const explorer = window.navigator.userAgent
  2. if(explorer.indexOf("MSIE") >= 0) {
  3. console.log("IE") //判断是否为IE浏览器
  4. }else if(explorer.indexOf("Firefox") >= 0) {
  5. console.log("Firefox") //是否为Firefox浏览器
  6. }else if(explorer.indexOf("Chrome") >= 0) {
  7. console.log("Chrome") //是否为Chrome浏览器
  8. }else if(explorer.indexOf("Opera") >= 0) {
  9. console.log("Opera") //是否为Opera浏览器
  10. }else if(explorer.indexOf("Safari") >= 0) {
  11. console.log("Safari") //是否为Safari浏览器
  12. }

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

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

  1. if(window.ActiveXObject) {
  2. console.log("IE")
  3. }else if(document.getBoxObjectFor) { //只有火狐有
  4. console.log("Firefox")
  5. }else if(window.MessageEvent && !document.getBoxObjectFor) {
  6. console.log("Chrome")
  7. }else if(window.opera) {
  8. console.log("Opera")
  9. }else if(window.openDatebase) {
  10. console.log("safair")
  11. }

相关文章