浏览器Hack演示

<!doctype html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<base target="_blank" />
<link type="text/css" href="css/reset.css"  rel="stylesheet"/>
<link type="text/css" href="css/layout.css"  rel="stylesheet"/>
<script type="text/javascript" src='js/jquery-1.8.0.min.js'></script>
<!--[if lte IE 6]> 
<script type="text/javascript" src="js/DD_belatedPNG_0.0.8a.js"></script>
<script type="text/javascript">
DD_belatedPNG.fix('.fixpng,.bg_wrapper');
</script>
<![endif]-->


<style type="text/css">
body{ color:#000; }
@charset "gb2312";

/*样式重置*/
html,body,div,span,h1,h2,h3,h4,h5,h6,a,p,hr,dl,dt,dd,ol,ul,li,strong,em,img,input,menu,abbr,blockquote,q,cite,del,ins,address,dfn,kbd,samp,form,label,legend,fieldset,iframe,object,button,sub,sup,pre,code,var,bdo,
table,thead,tfoot,tbody,tr,th,td{margin:0;padding:0;border:0;outline:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align: baseline;}
html:abbr,abbr{background: #fafad2;cursor: help;border-bottom: 1px dashed #000;}
body{font:12px/160% verdana,geneva,arial,helvetica,SimSun;text-align: center; background: #fff;-webkit-text-size-adjust:none;}li{list-style:none;}
a:link,a:visited{text-decoration:none; }a:hover{text-decoration: none;_text-decoration: underline; }
hr{margin: 3px 0 2px 0;border-top:1px solid silver; height: 1px; clear: both;}@-moz-document url-prefix(){hr{ margin:3px 0;}}
table{border-collapse:separate;border-spacing:0;}

/*浏览器色块标示*/
.test{ height:30px; background:#eee;border-bottom:#cacaca 1px solid;line-height: 20px; padding-top:10px; }
.test span{ display:inline-block; height:20px; width:20px; padding:0 6px;margin-right: 8px;}
.ie6{ background: #1e90ff; }
.ie7{ background: orange; }
.ie8{ background: #ba55d3; }
.ie9{ background: #ff1493; }
.ie10{ background: #ff4500; }
.Gecko{ background: #228b22; }
.WebKit{ background: #20b2aa; }


/*hack样式*/
.hacks{ font-size: 14px;line-height: 50px;margin-top: 10px;
background: #ba55d3;          /* IE 8 */
+background: orange;            /* IE 7 */
_background: #1e90ff;           /* IE 6 */
}
:root .hacks{ background: #ff14939;       /* IE 9 */ }
@-moz-document url-prefix() {.hacks {background:#228b22;/* Gecko内核 */}}
@media screen and (-webkit-min-device-pixel-ratio:0) {.hacks{background:#20b2aa;/* WebKit内核 */}}
@media screen and (-ms-high-contrast: active),(-ms-high-contrast: none) {.hacks{background:#ff4500 !important;/* IE 10+ */}}
</style>
</head>

<body>
<div class="test">
IE6<span class="ie6"></span>
IE7<span class="ie7"></span>
IE8<span class="ie8"></span>
IE9<span class="ie9"></span>
IE10<span class="ie10"></span>
Gecko内核<span class="Gecko"></span>
WebKit内核<span class="WebKit"></span>
</div>
<br>
注:firefox是Gecko内核;<br>
google chrome和safari是WebKit内核;<br>
opera也转用WebKit内核了,新版本用没用不清楚。


<div class="hacks">我的背景色是效果</div>
<br>
<br>
<br>
<p>以下是浏览器和flash插件版本信息</p>
<br>
<br>

<script type="text/javascript" charset="utf-8">

/*
浏览器和flashplay检查
*/
(function() {    
    var CKobject= {
        _K_:function(d){return document.getElementById(d);},
        getVideo:function(s){
            var v='';
            if(s){
                for(var k in s){
                    v+='<source src="'+k+'"';
                    if(s[k]){
                        v+=' type="'+s[k]+'"';
                    }
                    v+='>';
                }
            }
            return v;
        },
        getVars:function(v,k){
            if(v[k]){
                return v[k];
            }
        },
        getParams:function(v){
            var p='';
            if(v){
                if(this.getVars(v,'p')==1 && this.getVars(v,'m')!=1){
                    p+=' autoplay="autoplay"'
                }
                if(this.getVars(v,'e')==1){
                    p+=' loop="loop"'
                }
                if(this.getVars(v,'m')==1){
                    p+=' preload="meta"'
                }
                if(this.getVars(v,'i')){
                    p+=' poster="'+this.getVars(v,'i')+'"'
                }
            }
            return p;
        },
        browser:function(){
            var m = (function(ua){
                var a=new Object();
                var b = {
                    msie: /msie/.test(ua) && !/opera/.test(ua),
                    opera: /opera/.test(ua),
                    safari: /webkit/.test(ua) && !/chrome/.test(ua),
                    firefox: /firefox/.test(ua),
                    chrome: /chrome/.test(ua)
                };
                var vMark = "";
                for (var i in b) {
                    if (b[i]) { vMark = "safari" == i ? "version" : i; break; }
                }
                b.version = vMark && RegExp("(?:" + vMark + ")[\/: ]([\d.]+)").test(ua) ? RegExp.$1 : "0";
                b.ie = b.msie;
                b.ie6 = b.msie && parseInt(b.version, 10) == 6;
                b.ie7 = b.msie && parseInt(b.version, 10) == 7;
                b.ie8 = b.msie && parseInt(b.version, 10) == 8;
                a.B=vMark;
                a.V=b.version;
                return a;
            })(window.navigator.userAgent.toLowerCase());
            return m;
        },
        Platform:function(){
            var w=''; 
            var u = navigator.userAgent, app = navigator.appVersion;              
            var b={                  
                iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1,
                iPad: u.indexOf('iPad') > -1,
                ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/),
                android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
                webKit: u.indexOf('AppleWebKit') > -1,
                gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,
                presto: u.indexOf('Presto') > -1,
                trident: u.indexOf('Trident') > -1,       
                mobile: !!u.match(/AppleWebKit.*Mobile.*/)||!!u.match(/AppleWebKit/),
                webApp: u.indexOf('Safari') == -1
            }; 
            for (var k in b){
                if(b[k]){
                    w=k;
                    break;
                }
            }
            return w;
        },
        Flash:function(){
            var f=false,v=0;
            if(document.all){
                try { 
                    var s=new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); 
                    f=true;
                    var vs=s.GetVariable("$version");
                    v=parseInt(vs.split(" ")[1].split(",")[0]);
                } 
                catch(e){} 
            }
            else{
                if (navigator.plugins && navigator.plugins.length > 0){
                    var s=navigator.plugins["Shockwave Flash"];
                    if (s){
                        f=true;
                        var w = s.description.split(" ");
                        for (var i = 0; i < w.length; ++i){
                            if (isNaN(parseInt(w[i]))) continue;
                                v = parseInt(w[i]);
                            }
                        }
                }
            }
            return {f:f,v:v};
        },
        embedHTML5:function(C,P,W,H,V,A,S){
            var v='',
            b=this.browser()['B'],
            v=this.browser()['V'],
            x=v.split('.'),
            t=x[0],
            m=b+v,
            n=b+t,
            w='',
            s=false,
            f=this.Flash()['f'],
            a=false;
            if(!S){
                S=['iPad','iPhone','ios'];
            }
            for(var i=0;i<S.length;i++){
                w=S[i];
                if (w.indexOf('+')>-1){
                    w=w.split('+')[0];
                    a=true;
                }
                else{
                    a=false;
                }
                if(this.Platform()==w|| m==w || n==w || b==w){
                    if(a){
                        if(!f){
                            s=true;
                            break;
                        }
                    }
                    else{
                        s=true;
                        break;
                    }
                }
            }
            if(s){
                v='<video controls id="'+P+'" width="'+W+'" height="'+H+'"'+this.getParams(A)+'>'+this.getVideo(V)+'</video>';
                this._K_(C).innerHTML=v;
                this._K_(C).style.width=W+'px';
                this._K_(C).style.height=H+'px';
                this._K_(C).style.backgroundColor='#000';
            }
        },
        getflashvars:function(s){
            var v='',i=0;
            if(s){
                for(var k in s){
                    if(i>0){
                        v+='&';
                    }
                    v+=k+'='+s[k];
                    i++;
                }
            }
            return v;
        },
        getparam:function(s){
            var w='',v='',
            o={
                allowScriptAccess:'always',
                allowFullScreen:true,
                quality:'high',
                bgcolor:'#000'
            };
            if(s){
                for(var k in s){
                    o[k]=s[k];
                }
            }
            for(var e in o){
                w+=e+'="'+o[e]+'" ';
                v+='<param name="'+e+'" value="'+o[e]+'" />';
            }
            w=w.replace('movie=','src=');
            return {w:w,v:v};
        },
        getObjectById:function (s){
            var X = null,
            Y = this._K_(s),
            r = "embed";
            if (Y && Y.nodeName == "OBJECT") {
                if (typeof Y.SetVariable != 'undefined') {
                    X = Y;
                } else {
                    var Z = Y.getElementsByTagName(r)[0];
                    if (Z) {
                        X = Z;
                    }
                }
            }
            return X;
        },
        embedSWF:function(C,D,N,W,H,V,P){
            if(!N){N='ckplayer_a1'}
            if(!P){P={};}
            var u='undefined',
            j=document,
            r='http://www.macromedia.com/go/getflashplayer',
            t='<a href="'+r+'" target="_blank">请点击此处下载安装最新的flash插件</a>',
            error={
                w:'您的网页不符合w3c标准,无法显示播放器',
                f:'您没有安装flash插件,无法播放视频,'+t,
                v:'您的flash插件版本过低,无法播放视频,'+t
            },
            w3c=typeof j.getElementById != u && typeof j.getElementsByTagName != u && typeof j.createElement != u,
            i='id="'+N+'" name="'+N+'" ',
            s='',
            l='';
            P['movie']=C;
            P['flashvars']=this.getflashvars(V);
            s+='<object  pluginspage="http://www.macromedia.com/go/getflashplayer" ';
            s+='classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
            s+='codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" ';
            s+='width="'+W+'" ';
            s+='height="'+H+'" ';
            s+=i;
            s+='align="middle">';
            s+=this.getparam(P)['v'];
            s+='<embed ';
            s+=this.getparam(P)['w'];
            s+=' width="'+W+'" height="'+H+'" name="'+N+'" id="'+N+'" align="middle" '+i;
            s+='type="application/x-shockwave-flash" pluginspage="'+r+'" />';
            s+='</object>';
            if(!w3c){
                l=error['w'];
            }
            else{
                if(!this.Flash()['f']){
                    l=error['f'];
                }
                else{
                    if(this.Flash()['v']<10){
                        l=error['f'];
                    }
                    else{
                        l=s;
                    }
                }
            }
            if(l){
                this._K_(D).innerHTML=l;
            }
        }
    }
    window.CKobject = CKobject;
})();


</script>
<p id="aboutme"></p>
<script type="text/javascript">
var aboutme='';
aboutme+='平台(浏览器)内核:'+CKobject.Platform()+'<br />';
aboutme+='浏览器:'+CKobject.browser()['B']+'<br />';
aboutme+='浏览器版本:'+CKobject.browser()['V']+'<br />';
aboutme+='是否安装了flash插件:'+CKobject.Flash()['f']+'<br />';
if(CKobject.Flash()['f']){
    aboutme+='flash插件版本:'+CKobject.Flash()['v']+'<br />';
}
CKobject._K_('aboutme').innerHTML=aboutme;
</script>
</body>
</html>
原文地址:https://www.cnblogs.com/visi_zhangyang/p/3325661.html