|
要想寫出跨瀏覽器的Javascript,就必須懂得嗅探技術。這是瀏覽器大戰(zhàn)遺留下的大地雷,事已如此,只好認命,乖乖寫分支結構吧,函數(shù)就是這樣不知不覺中變長的。
先看單一瀏覽器的判斷,我們沒有必須去找navigator.userAgent的麻煩,我在國外的博客網(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,會返回6,7,8代表ie6,ie7,ie8,否則返回1
IEVersion = (" " + (/*@cc_on @_jscript_version @*/-1)).slice(-1)
//基于條件編譯的嗅探腳本,還有如下幾個:
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知識庫:JavaScript判斷瀏覽器類型與版本,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。