|
要想寫出跨瀏覽器的Javascript,就必須懂得嗅探技術(shù)。這是瀏覽器大戰(zhàn)遺留下的大地雷,事已如此,只好認(rèn)命,乖乖寫分支結(jié)構(gòu)吧,函數(shù)就是這樣不知不覺(jué)中變長(zhǎng)的。
先看單一瀏覽器的判斷,我們沒(méi)有必須去找navigator.userAgent的麻煩,我在國(guó)外的博客網(wǎng)站收集了如下hack,短小精悍:
ie = !+"/v1" ;
ie ='/v'=='v' ;
ie = 0//@cc_on+1;
ie = !!top.execScript;
ie = /*@cc_on!@*/!1;
ie8 = !!window.XDomainRequest;
//我自創(chuàng)的,如果是IE,會(huì)返回6,7,8代表ie6,ie7,ie8,否則返回1
IEVersion = (" " + (/*@cc_on @_jscript_version @*/-1)).slice(-1)
//基于條件編譯的嗅探腳本,還有如下幾個(gè):
IE8=@cc_on @_jscript_version == 5.8 ? true : @false
IE7=@cc_on @_jscript_version == 5.7 ? true : @false
IE6=@cc_on @_jscript_version == 5.6 ? true : @false
IE55=@cc_on @_jscript_version == 5.5 ? true : @false
ff = /a/[-1]=='a';
ff3 = (function x(){})[-5]=='x';
ff2 = (function x(){})[-6]=='x';
safari=/a/.__proto__=='//';
safari = window.openDatabase;
chrome=/source/.test((/a/.toString+''));
opera=!!window.opera ;
opera=/^function (/.test([].sort);
it知識(shí)庫(kù):JavaScript判斷瀏覽器類型與版本,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。