• javascript简单区分现代浏览器和ie6,7,8


    众多周知,对浏览器的检测主要分为3类:
    1:能力检测 调用方法之前判断浏览器支持这个方法吗。
    2:怪癖检测 根据不同浏览的特殊性为判断浏览器。
    3:用户代理检测 即通过检测用户代理字符串,这个字符串可以通过navigator.userAgent获取。
    下面介绍的2个方法都是怪癖检测的方法
    第一种:

    if(+"\v1"){
    alert("现代浏览器(包含ie9)")
    }else{
    alert("ie6,7,8")
    }


    在javascript中+后跟字符串是最简单的字符转转换成数组,所有浏览器中+”v1″返回的都是NaN,+”1″返回的是1,类型为number。
    至于以上代码为何能分辨ie6,7,9与现代浏览器就在于这个神奇的”\v”,对没错就是”\v”,不是”/a”,不是”/b”,也不是”/V”,就是”/v”。
    具体原因我也不清楚,在ie6,7,8中”\v1″解释成”v1″,所以+”\v1″返回false。
    而现代浏览器中,”\v1″都是解释成”1″,自然+”/v1″返回true。
    最开始我认为是”\”这个凡斜杠的愿意,但v换成其余字母,结果都没有如”v”一样的效果。
    ie6,7,8中”\v”==”v”,现代浏览器”\v”!=”v”也可以这样判断。至于”\v”的原理就期待高手来讲解。
    第二种是

    if(-[1,]){
    alert("现代浏览器")
    }else{
    alert("ie6,7,8")
    }


    通过的ie6,7,8对这样数组[1,]的解释与现代浏览器不一样,这是ie6,7,8的bug,不过ie9已经改善过来。[1,].length在现代浏览器返回1,在ie6,7,8中返回2。
    关于这个判断方法在最简洁短小的 JavaScript 判定 IE 浏览器有详细介绍。

  • 相关阅读:
    SonarQube代码质量管理平台安装与配置
    特殊字符大全
    测试“用户登录”功能
    通用测试用例大全
    k8s dashboard 部署并使用 kubeconfig 登陆
    k8s cert-manager 部署
    nginx ingress部署
    Harbor 安装
    kubernetes 高可用集群1.14 部署
    shell 免密远程执行
  • 原文地址:https://www.cnblogs.com/rhinemetal/p/2568561.html
Copyright © 2020-2023  润新知