在jquery.1.9以前的版本,可以使用$.browser很輕鬆的判斷瀏覽器的類型和版本,但是在1.9中和以後的版本中,$.browser已經被刪除,下面就介紹一下如何實現此功能,希望能夠為需要的朋友帶來幫助。
一.自訂程式碼:
$.browser.mozilla = /firefox/.test(navigator.userAgent.toLowerCase()); $.browser.webkit = /webkit/.test(navigator.userAgent.toLowerCase()); $.browser.opera = /opera/.test(navigator.userAgent.toLowerCase()); $.browser.msie = /msie/.test(navigator.userAgent.toLowerCase());
以上程式碼中,等號後面的表達式回傳值是布林類型的,用來表示是否支援此瀏覽器。這樣就實現了自訂的$.browser效果。
二.判斷IE6瀏覽器:
jquery1.9之前使用以下程式碼:
if ($.browser.msie && 7 > $.browser.version) {}
jquery1.9和之後使用以下程式碼:
if ('undefined' == typeof(document.body.style.maxHeight)) {}
三.判斷IE6-IE8瀏覽器:
if (!$.support.leadingWhitespace) {}
綜上所述,基本上實現了我們的要求,這裡就不多介紹了。
擴充知識點:
jQuery.browser的定義與用法:
瀏覽器內核標識,依據 navigator.userAgent 判斷。
可用值: safari 、opera 、msie 和mozilla。
瀏覽器物件偵測技術與此屬性共同使用可提供可靠的瀏覽器偵測支援。
在jQuery 1.9中已經刪除。
如果網頁在opera瀏覽器中運行,那麼jQuery.browser.opera會回傳true,否則回傳false。
其他的屬性值以此類推。
實例碼:
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.jb51.net/" /> <title>脚本之家</title> <script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> <script type="text/javascript"> $(document).ready(function(){ alert($.browser.msie); }); </script> </head> <body> 如果在IE浏览器中运行则返回true,否则返回false。 </body> </html>
typeof 運算子的用法:
typeof運算子放在運算元之前,可以偵測此運算元的資料型別,並傳回字串用來說明運算元的型別。
操作數可以是變數或值等。
typeof運算子可能傳回的值:
一.如果變數未賦值或變數值賦值為undefined,則傳回undefined。
實例實例:
var a console.log(typeof(a))
變數a沒有被賦值,這個時候變數被預設隱式賦值undefined。輸出結果:undefined。
var a=undefined; console.log(typeof(a))
變數a被賦值undefined。輸出結果:undefined。
二.如果變數或值是布林類型,則傳回boolean。
實例碼:
console.log(typeof (true))
輸出結果:boolean。
var a=2,b=1,c=3,d; d=a+b; console.log(typeof(c==d))
輸出結果:boolean。
三.如果變數或值是數值類型,則傳回number。
console.log(typeof(1))
輸出結果:number。
四.如果變數或值是字串,則回傳string。
console.log(typeof("mayi"))
輸出結果:string。
console.log(typeof("a"))
ECMAScript中沒有字元類型。所以此段程式碼也會輸出string。
五.變數是引用型別或null,則會回傳object。
註:null可以認為是物件的佔位符,所以回傳值也是object。
實例碼:
var a=new Date; console.log(typeof(a))
建立一個時間物件實例a,它是一個引用型別。輸出結果: objct。
console.log(typeof(null))
輸出結果: object。
六.如果變數是函數,則回傳function
console.log(typeof(function(){alert("大家好")}))
輸出結果:function。
var a=function(){alert("大家好")} console.log(typeof(a))
輸出結果:function。