zoukankan      html  css  js  c++  java
  • 评估浏览器级别,提醒升级

    是时候拒绝一些老旧的浏览器了,诱导你的用户升级浏览器吧  = =!

    这张网页以IE 各本版本为参照粗略地评估访客的浏览器等级,提醒低于IE8 级别(没办法,XP不支持IE9)的浏览器用户更换浏览器。

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="X-UA-Compatible" content="Edge" />
    <!--
    <meta http-equiv="X-UA-Compatible" content="IE6" />
    -->
    
    <!-- 哆啦A梦 css, from internet -->
    <link rel="stylesheet" href="https://files.cnblogs.com/ecalf/duolaAmeng.css" />
    </head>
    <body>
    
    <style>
        .nomoreie{
            width:550px;
            display:none;
            clear: both; 
            position: relative;        
            left:-260px;
            margin-left:50%;
            margin-top:50px;
            border: 1px solid #F7941D; 
            background: #FEEFDA; 
            text-align: center;         
        } 
        .nomoreie img{
            border:none;
        }
    
        .nomoreie .close{
            position: absolute; 
            right: 3px; 
            top: 3px;
            border:none;
            width:24px;
            cursor:pointer;
        }
    
        .nomoreie .notice{
            width:530px;
            margin: 0 auto; 
            text-align: left; 
            padding: 0;         
            color: black;
            overflow: hidden;
            display:inline-block;
            *display:inline;
            *zoom:1;
        }
    
        .nomoreie .warning-icon{
            float: left; 
            vertical-align: middle;
        }
    
        .nomoreie .warning-text{
            float: left;
            width: 275px;         
            height: 96px;            
        }
        .nomoreie .infor{
            font-size: 14px; 
            font-weight: bold; 
            margin-top: 12px;
        }
        .nomoreie .infor2{
            font-size: 14px; 
            font-weight: bold; 
            margin-bottom: 12px;
        }
    
        .nomoreie .tip{
            font-size: 12px; 
            margin-top: 6px; 
            margin-bottom: 6px;
            margin-left: 6px;
            line-height: 12px;
        }
    
        .nomoreie .dlam{
            float:left;
            overflow: hidden;
            text-align: center;        
            height: 96px;    
            cursor: pointer; 
        }
    
        .nomoreie .dlam img{
            margin-left:5px;
            margin-top:4px;        
        }
    
        .nomoreie .dlam p{
            font-size: 12px; 
            margin-top: 4px;
            line-height: 12px;
            font-weight: bold;
        }
    
        .nomoreie .browsers{
            position: relative;
            overflow: hidden;
            width:530px;
            margin:0 auto;
            display:inline-block;
            *display:inline;
            *zoom:1;
        }
    
        .nomoreie .browsers div{
            width: 75px; 
            float: left;
        }
    
        .nomoreie .browsers p{
            font-size: 14px; 
            font-weight: bold; 
            height:25px;
            line-height: 20px;
            margin:0;
        }
    
        .nomoreie .browserTestInfo{
            width:530px;
            margin:10px;
            border-top: 1px dashed #454545;
        }
    
        .nomoreie .browserTestInfo p{
            text-align: left;
            font-size: 12px; 
            font-family: Arial, sans-serif;    
            margin:0px;
            margin-top:10px;
        }
    
    </style>
    
    <div id="browserRefuse" class="nomoreie">
        <img src="http://images.cnblogs.com/cnblogs_com/ecalf/449311/o_close.png" class="close" onclick="javascript:this.parentNode.style.display='none';" alt="Close this notice" />      
    
        <div class="notice">   
            <a href="http://www.ie6nomore.com/">
                <img class="warning-icon" src="http://images.cnblogs.com/cnblogs_com/ecalf/449311/o_warning.png" alt="Warning!">
            </a>
            <div class="warning-text">
                <div class="infor">
                    You are using an outdated browser
                </div>
                <div class="tip">
                    For a better experience using this site, please upgrade to a modern web browser.
                </div>
                <div class="infor2">
                    你的浏览器版本太旧,点击下载最新版本
                </div>
            </div>
            <div id="gotestDLAM" class="dlam">
                <img height="56" src="http://images.cnblogs.com/cnblogs_com/ecalf/449311/o_dlam.png" />
                <img height="56" src="http://images.cnblogs.com/cnblogs_com/ecalf/449311/o_dlamIE8.png" />
                <p>多啦A梦帮你测试浏览器</p>
            </div>
          </div>
    
        <div class="browsers">
            <div>
                <a href="http://www.firefox.com" target="_blank">
                    <img src="http://images.cnblogs.com/cnblogs_com/ecalf/449311/o_firefox.png" style="border: none;" alt="Get Firefox">
                </a>
                <p>Firefox</p>
            </div>        
            
            <div>
                <a href="http://www.google.com/intl/zh-CN/chrome/browser/" target="_blank">
                    <img src="http://images.cnblogs.com/cnblogs_com/ecalf/449311/o_chrome.png" style="border: none;" alt="Get Google Chrome">
                </a>
                <p>Chrome</p>
            </div>
    
            <div>
                <a href="http://www.opera.com/" target="_blank">
                    <img src="http://images.cnblogs.com/cnblogs_com/ecalf/449311/o_opera.png" style="border: none;" alt="Get Opera">
                </a>
                <p>Opera</p>
            </div>
    
            <div>
                <a href="http://support.apple.com/kb/HT4612" target="_blank">
                    <img src="http://images.cnblogs.com/cnblogs_com/ecalf/449311/o_safari.png" style="border: none;" alt="Get Safari">
                </a>
                <p>Safari</p>
            </div>
    
            <div>
                <a href="http://windows.microsoft.com/zh-cn/internet-explorer/downloads/ie-10/worldwide-languages" target="_blank">
                    <img src="http://images.cnblogs.com/cnblogs_com/ecalf/449311/o_ie10.png" style="border: none;" alt="Get Internet Explorer 10">
                </a>
                <p>IE10</p>
            </div>
    
            <div>
                <a href="http://windows.microsoft.com/zh-cn/internet-explorer/downloads/ie-9/worldwide-languages" target="_blank">
                    <img src="http://images.cnblogs.com/cnblogs_com/ecalf/449311/o_ie9.png" style="border: none;" alt="Get Internet Explorer 9">
                </a>
                <p>IE9</p>
            </div>
            
            <div>
                <a href="http://www.microsoft.com/zh-cn/download/details.aspx?id=43" target="_blank">
                    <img src="http://images.cnblogs.com/cnblogs_com/ecalf/449311/o_ie8.png" style="border: none;" alt="Get Internet Explorer 8">
                </a>
                <p>IE8</p>
            </div>
        </div> 
        <div id="showTest" class="browserTestInfo"></div>
    </div>
    
    
    <!-- 多啦A梦-->
    <div id="dlamHolder">
        <div id="doraemon">
            <div id="face">
                <div id="head_light"></div>
                <div id="eyes">
                    <div class="eye eye_left"></div>
                    <div class="black_eye black_left"></div>
                    <div class="eye eye_right"></div>
                    <div class="black_eye black_right"></div>
                </div>
                <div id="base">
                    <div id="base_white"></div>
                    <div id="nose">
                        <div id="nose_light"></div>
                    </div>
                    <div id="jason5ng32-nose_line"></div>
                    <div id="mouth"></div>
                    <div id="mouth_rewrite"></div>
                    <div id="firefox_mouth"></div>
                    <div class="whiskers whi_right_top rotate160"></div>
                    <div class="whiskers whi_right"></div>
                    <div class="whiskers whi_right_bottom rotate20"></div>      
                    <div class="whiskers whi_left_top rotate20"></div>
                    <div class="whiskers whi_left"></div>
                    <div class="whiskers whi_left_bottom rotate160"></div>
                </div>
            </div>
    
            <div id="jason5ng32-choker">
                <div id="belt"></div>
                <div id="jason5ng32-bell">
                    <div id="jason5ng32-bell_line"></div>
                    <div id="jason5ng32-bell_circle"></div>
                    <div id="jason5ng32-bell_under"></div>
                    <div id="jason5ng32-bell_light"></div>
                </div>
            </div>
    
            <div id="body">
                <div id="doutai"></div>
                <div class="base_white2 doutai_center"></div>
                <div id="pocket">
                    <div id="circle"></div>
                    <div id="circle_rewrite"></div>
                </div>
            </div>
    
            <div id="hand_right">
                <div id="arm_right"></div>
                <div class="hand_circle hand_right"></div>
                <div class="arm_rewrite_right"></div>
            </div>
            <div id="hand_left">
                <div id="arm_left"></div>
                <div class="hand_circle hand_left"></div>
                <div class="arm_rewrite_left"></div>
            </div>
            
            <div id="foot">
                <div id="foot_left"></div>
                <div id="foot_right"></div>
                <div id="foot_rewrite"></div>
            </div>
    
            <div id="shadow_doutai_arm"></div>
            <div id="shadow_doutai_left"></div>
            <div id="shadow_doutai_right"></div>
            <div id="shadow_belt"></div>
        </div>
    
        <div id="dlamCompare">
            <img src="http://images.cnblogs.com/cnblogs_com/ecalf/449311/o_dlam.png" />
        </div>
        <div id="dlamText">
            <p>
                如果你的浏览器支持最新的网页制作技术,你将在左侧看到与右图一样的多啦A梦,还不时地转着眼珠.
            </p>
            <p>
                推荐使用最新版本的 chrome、firefox、opara、safari、ie9(vista 以上)、ie10(win7 以上) 浏览器.
            </p>
            <p id="backtobrowser">返回</p>
        </div>
    </div>
    
    
     <script>
    
    
    function browserLevelCheck(n){
        //浏览器粗略分级,基于IE ,比较是否达到某个等级,或返回浏览器的等级
        var rst,iframe,node,pNode;
        n = n*1||10000;
        switch(n){
            case 10000:
            case 10:
                    iframe = document.createElement("iframe");
                    iframe.style.display = 'none';
                    document.body.appendChild(iframe);
                    rst = !!iframe.contentWindow.WebSocket;                
                    
                    if(rst||n==10){
                       rst = rst&&(n==10||10);   
                       break;
                    }
            case 9:
                    node = node||document.createElement("canvas");
                    rst = !!(node.getContext&&node.getContext("2d")); 
    
                    if(rst||n==9){
                       rst = rst&&(n==9||9);                   
                       break;
                    }
            case 8:
                    node = node||document.createElement("div");
                    pNode = pNode||document.createElement("div");
                    node.setAttribute("class",'cls');
                    pNode.appendChild(node);
    
                    rst = (!!pNode.querySelector && pNode.querySelector('.cls') === node);
    
                                    
                    if(!rst){
                        //IE8+ 在 BackCompat 模式下不能使用 querySelector 
                        try{
                            //document.documentMode 存在于IE8+,writing error
                            document.documentMode = 0; 
                        }catch(error){}
    
                        if(document.documentMode){
                            var v = window.navigator.userAgent.match(/MSIE (\d+)/);
                            if(document.compatMode=="BackCompat"&&v&&v[1]>7){
                                //进入 BackCompat 模式可能是未声明 DOCTYPE
                                rst = true;
                            }else if(n!=8){   
                                //ie8+ 用 X-UA-Compatible 或手动切换至低版本
                                rst = document.documentMode;
                                break;
                            }     
                        }else{
                            document.documentMode = undefined;
                        }                               
                    }
    
                    if(rst||n==8){
                        rst = rst&&(n==8||8);         
                        break; 
                    }
            case 7:             
                    if(!iframe){
                        iframe = document.createElement("iframe");
                        iframe.style.display = 'none';
                        document.body.appendChild(iframe);
                    } 
                    //如果IE7 禁用XMLHttp组件直接降级为IE6
                    rst = !!iframe.contentWindow.XMLHttpRequest;                
                    
                    if(rst||n==7){ 
                        rst = rst&&(n==7||7);         
                        break; 
                    }              
    
            case 6:
                    /*
                        document.compatMode
                        ie5.5: compatMode undefined and writable
                        ie 6-8: readonly and writing error 
                        ie9 and other browser: readonly
                    */   
                    try{
                        document.compatMode = 0;
                    }catch(err){}
    
                    rst = !!document.compatMode;
                    if(rst||n==6){ 
                        rst = rst&&(n==6||6);         
                        break; 
                    }                
                         
            default:
                //附送 IE5.5 判断,几乎没什么用
                rst = Function.prototype.call?5.5:5;
                break;
        }
    
    
    
        iframe && iframe.parentNode && iframe.parentNode.removeChild(iframe);
        node && node.parentNode && node.parentNode.removeChild(node);
        pNode && pNode.parentNode && pNode.parentNode.removeChild(pNode);
        iframe = node = pNode = null;    
        
        return rst;
    }
    
    
    (function(){
        var brsLevel = browserLevelCheck();
        var showTip = document.getElementById("showTest");
        var p = document.createElement("p");
        var tmp;
    
        showTip.innerHTML = '';
        tmp = p.cloneNode();
        tmp.innerHTML = "浏览器UA信息:"+window.navigator.userAgent;
        showTip.appendChild(tmp);
    
        tmp = p.cloneNode();
        tmp.innerHTML = "浏览器级别:"+brsLevel+"(与 IE"+brsLevel+" 相当)";
        showTip.appendChild(tmp);
    
        if(brsLevel>=6&&document.compatMode=="BackCompat"){
               tmp = p.cloneNode();
            tmp.innerHTML = "浏览器文档模式:Quirks";
            showTip.appendChild(tmp);
        }
        tmp = null;
        if(brsLevel<8){
            document.getElementById("browserRefuse").style.display="block";
        }
    
        document.getElementById("gotestDLAM").onclick=function(){
            document.getElementById("dlamHolder").style.display="block";
        };
    
        document.getElementById("backtobrowser").onclick=function(){
            document.getElementById("dlamHolder").style.display="none";
        };
    
    })();
    document.write("<hr />");
    document.write('<p>userAgent:'+window.navigator.userAgent+'</p>');
    document.write('<p>browserLevelCheck():'+browserLevelCheck()+'</p>');
    document.write('<p>browserLevelCheck(8):'+browserLevelCheck(8)+'</p>');
    document.write('<p>document.documentMode:'+document.documentMode+'</p>');
    document.write('<p>document.compatMode:'+document.compatMode+'</p>');
    </script>
    </body>
    </html>
  • 相关阅读:
    自学python day 10 函数的动态参数、命名空间、作用域
    老男孩 python 自学 打印05 dict 复习总结
    老男孩python 自学day09 函数开始
    今天
    day 03
    eclipse如何安装配置tomcat
    windows上配置maven环境
    如何创建ssh key使电脑和Github关联在一起
    怎么将本地文件上传到github
    使用git工具上传代码到github
  • 原文地址:https://www.cnblogs.com/ecalf/p/2879210.html
Copyright © 2011-2022 走看看