zoukankan      html  css  js  c++  java
  • js/jquery判断浏览器的方法小结

    在网站前端开发中,浏览器兼容性是前端开发框架要解决的第一个问题,要解决兼容性问题就得首先准确判断出浏览器的类型及其版本,而判断浏览器的版本一般只能通过分析浏览器的userAgent才能知道.今天我们把各种判断方法都总结一下,希望对大家有所帮助

    JS获取浏览器信息

    浏览器代码名称:navigator.appCodeName
    浏览器名称:navigator.appName
    浏览器版本号:navigator.appVersion
    对Java的支持:navigator.javaEnabled()
    MIME类型(数组):navigator.mimeTypes
    系统平台:navigator.platform
    插件(数组):navigator.plugins
    用户代理:navigator.userAgent
    js判断IE浏览器的四种方法:
    方法一:

    if(window.addEventListener){
    alert("not ie");
    }else if(window.attachEvent){
    alert("is ie");
    }else{
    alert("这种情况发生在不支持DHTML的老版本浏览器(现在一般都支持)")
    }
    注释:该方法在IE9及以上IE版本会弹出not ie结果
    方法二:

    if(document.all){
    alert("IE");
    }else{
    alert("not ie");
    }--支持IE11


    方法三:

    var navigatorName = "Microsoft Internet Explorer";
    if( navigator.appName == navigatorName ){
    alert("ie")
    }else{
    alert("not ie")
    }
    方法四:
    利用了IE与标准浏览器在处理数组的toString方法的差异.对于标准游览器,如果数组里面最后一个字符为逗号,JS引擎会自动剔除它.

    其他判断是否为浏览器的方法:

    if ("v" == "v")
    alert("这是IE浏览器!");

    if (! -"v1")
    alert("这是IE浏览器!");

    if (! -[1, ])
    alert("这是IE浏览器!");

    if (! +[1, ])
    alert("这是IE浏览器!");

    if ((0/*@cc_on + 1@*/) == 1)
    alert("这是IE浏览器!");

    if (! +"v1")   (不支持IE11)
    if(!+[1,])alert("这是ie浏览器");
    else alert("这不是ie浏览器");

    注释:IE9及以上版本会弹出“这不是IE浏览器”
    判断常用浏览器的方法:

    var explorer =navigator.userAgent ;
    //ie
    if (explorer.indexOf("MSIE") >= 0) {
    alert("ie");
    }
    //firefox
    else if (explorer.indexOf("Firefox") >= 0) {
    alert("Firefox");
    }
    //Chrome
    else if(explorer.indexOf("Chrome") >= 0){
    alert("Chrome");
    }
    //Opera
    else if(explorer.indexOf("Opera") >= 0){
    alert("Opera");
    }
    //Safari
    else if(explorer.indexOf("Safari") >= 0){
    alert("Safari");
    }
    //Netscape
    else if(explorer.indexOf("Netscape")>= 0) {
    alert('Netscape');
    }
    这里用到navigator.userAgent。indexOf("MSIE") >= 0进行判断,当然也可以用
    navigator.userAgent.indexOf("MSIE") != -1 进行判断。
    jquery判断浏览器类型和浏览器版本号的方法

    $(document).ready(function(){

    var brow=$.browser;

    var bInfo="";

    if(brow.msie){bInfo="MicrosoftInternetExplorer"+brow.version;}

    if(brow.mozilla){bInfo="MozillaFirefox"+brow.version;}

    if(brow.safari){bInfo="AppleSafari"+brow.version;}

    if(brow.opera){bInfo="Opera"+brow.version;}

    alert(bInfo);

    });

    第一种,只区分浏览器,不考虑版本

    复制代码代码如下:

    function myBrowser(){
        var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
        var isOpera = userAgent.indexOf("Opera") > -1;
        if (isOpera) {
            return "Opera"
        }; //判断是否Opera浏览器
        if (userAgent.indexOf("Firefox") > -1) {
            return "FF";
        } //判断是否Firefox浏览器
        if (userAgent.indexOf("Chrome") > -1){
      return "Chrome";
     }
        if (userAgent.indexOf("Safari") > -1) {
            return "Safari";
        } //判断是否Safari浏览器
        if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {
            return "IE";
        }; //判断是否IE浏览器
    }

    //以下是调用上面的函数
    var mb = myBrowser();
    if ("IE" == mb) {
        alert("我是 IE");
    }
    if ("FF" == mb) {
        alert("我是 Firefox");
    }
    if ("Chrome" == mb) {
        alert("我是 Chrome");
    }
    if ("Opera" == mb) {
        alert("我是 Opera");
    }
    if ("Safari" == mb) {
        alert("我是 Safari");
    }

    第二种,区分浏览器,并考虑IE5.5 6 7 8

    复制代码代码如下:

    function myBrowser(){
        var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
        var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器
        var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器
        var isFF = userAgent.indexOf("Firefox") > -1; //判断是否Firefox浏览器
        var isSafari = userAgent.indexOf("Safari") > -1; //判断是否Safari浏览器
        if (isIE) {
            var IE5 = IE55 = IE6 = IE7 = IE8 = false;
            var reIE = new RegExp("MSIE (\d+\.\d+);");
            reIE.test(userAgent);
            var fIEVersion = parseFloat(RegExp["$1"]);
            IE55 = fIEVersion == 5.5;
            IE6 = fIEVersion == 6.0;
            IE7 = fIEVersion == 7.0;
            IE8 = fIEVersion == 8.0;
            if (IE55) {
                return "IE55";
            }
            if (IE6) {
                return "IE6";
            }
            if (IE7) {
                return "IE7";
            }
            if (IE8) {
                return "IE8";
            }
        }//isIE end
        if (isFF) {
            return "FF";
        }
        if (isOpera) {
            return "Opera";
        }
    }//myBrowser() end
    //以下是调用上面的函数
    if (myBrowser() == "FF") {
        alert("我是 Firefox");
    }
    if (myBrowser() == "Opera") {
        alert("我是 Opera");
    }
    if (myBrowser() == "Safari") {
        alert("我是 Safari");
    }
    if (myBrowser() == "IE55") {
        alert("我是 IE5.5");
    }
    if (myBrowser() == "IE6") {
        alert("我是 IE6");
    }
    if (myBrowser() == "IE7") {
        alert("我是 IE7");
    }
    if (myBrowser() == "IE8") {
        alert("我是 IE8");
    }

    下面给出一个判断当前浏览器是IE的JS代码.

    原理是利用了IE与标准浏览器在处理数组的toString方法的差异做成的。对于标准游览器,如果数组里面最后一个字符为逗号,JS引擎会自动剔除它。 

  • 相关阅读:
    django orm 以列表作为筛选条件进行查询
    申请Let's Encrypt通配符HTTPS证书
    redis集群部署及踩过的坑
    MySQL的索引是什么?怎么优化?
    Session管理之超时设置和强制下线
    在MySQL中使用explain查询SQL的执行计划
    基于Docker搭建MySQL主从复制
    这些年一直记不住的 Java I/O
    高并发大容量NoSQL解决方案探索
    php 如何生成静态页
  • 原文地址:https://www.cnblogs.com/xdot/p/5028746.html
Copyright © 2011-2022 走看看