求解疑惑,一个js判断系统和浏览器内核问题

牛哥呀 发布于 2017/02/28 15:12
阅读 160
收藏 0

求解疑惑,一个js判断系统和浏览器内核问题

function a() {
        var f = navigator.userAgent.toLowerCase();
        var g = 0;
        if (f.indexOf("windows") > -1) {
          g = 1
        } else {
          if (f.indexOf("mac") > -1) {
            g = 2
          } else {
            if (f.indexOf("linux") > -1) {
              g = 3
            } else {
              if (f.indexOf("solaris") > -1) {
                g = 4
              } else {
                if (f.indexOf("x11") > -1) {
                  g = 5
                }
              }
            }
          }
        }
        if ( !! f.match(/AppleWebKit.*Mobile.*/) || !!f.match(/AppleWebKit/)) {
          g = 6
        } else {
          if (f.indexOf("ios") > -1) {
            g = 6
          } else {
            if (f.indexOf("android") > -1) {
              g = 7
            } else {
              if (f.indexOf("iphone") > -1) {
                g = 8
              } else {
                if (f.indexOf("ipad") > -1) {
                  g = 9
                }
              }
            }
          }
        }
        var d = 0;
        try {
          if (f.indexOf("msie") > -1) {
            d = 1
          } else {
            if (f.indexOf("firefox") > -1) {
              d = 2
            } else {
              if (f.indexOf("chrome") > -1) {
                d = 3
              } else {
                if (window.opera) {
                  d = 4
                } else {
                  if (window.openDatabase) {
                    d = 5
                  }
                }
              }
            }
          }
        } catch(h) {}
        if (f.indexOf("360ee") > -1) {
          d = 6
        } else {
          if (f.indexOf("360se") > -1) {
            d = 7
          } else {
            if (f.indexOf("se ") > -1) {
              d = 8
            } else {
              if (f.indexOf("aoyou") > -1 || f.indexOf("maxthon") > -1) {
                d = 9
              } else {
                if (f.indexOf("theworld") > -1) {
                  d = 10
                } else {
                  if (f.indexOf("worldchrome") > -1) {
                    d = 11
                  } else {
                    if (f.indexOf("greenbrowser") > -1) {
                      d = 12
                    } else {
                      if (f.indexOf("qqbrowser") > -1) {
                        d = 13
                      } else {
                        if (f.indexOf("baidu") > -1 || f.indexOf("bidu") > -1) {
                          d = 14
                        } else {
                          if (f.indexOf("maxthon") > -1) {
                            d = 9
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
        try {
          if (d == 3) {
            var i = navigator.mimeTypes["application/x-shockwave-flash"].description.toLowerCase();
            if (i.indexOf("adobe") > -1 && d == 0) {
              d = 6
            }
          }
          window.external.twGetRunPath().toLowerCase().indexOf("360se") > -1 && (d = 7)
        } catch(c) {}
        try {
          if (/(\d+\.\d)/.test(external.max_version)) {
            d = 9
          }
        } catch(h) {}
        return ((g & 255) << 8) | (d & 255)
      }
      alert(a());
</script>

我本地g返回的是 1,d返回的3,疑问在为什么 最后return要这样处理呢?

加载中
返回顶部
顶部