原創博文,轉載請註明出處。javascript
若是你如今仍是一個JavaScript新手(好比本人,哈哈 ),因爲瀏覽器的兼容問題,很容易寫出不兼容的JS代碼,這就須要咱們對瀏覽器進行檢測。html
JavaScript Navigator 對象包含了有關訪問者瀏覽器的全部信息。前端
Navigator含有如下幾個屬性: java
瀏覽器信息:chrome
瀏覽器代碼名稱:navigator.appCodeName數組
瀏覽器名稱:navigator.appName瀏覽器
瀏覽器版本號:navigator.appVersion,包括了大版本號、小版本號、語言、操做平臺等信息。cookie
瀏覽器次要版本:navigator.appMinorVersionapp
MIME類型(數組):navigator.mimeTypeside
系統平臺:navigator.platform
插件(數組):navigator.plugins
用戶代理:navigator.userAgent
cpu信息: navigator.cpuClass
語言: navigator.language,還有userLanguage操做系統設定的天然語言,browserLanguage返回瀏覽器當前語言, systemLanguage返回當前操做系統的缺省語言。
瀏覽器狀態:
cookie開啓關閉:navigator.cookieEnabled
瀏覽器聯網狀態:navigator.online
對Java的支持:navigator.javaEnabled()
其餘:
用戶信息:navigator.userProfile,擁有 addReadRequest() doReadRequest() getAttribute() clearRequest() 等方法。
指定是否容許數據污點:navigator.taintEnabled 是否能夠加密數據的真僞值。僅IE有效。在navigator 4.0 已刪除
咱們來看一個例子:這個例子用來返回當前瀏覽器的信息。
1 <html> 2 <body> 3 4 <script type="text/javascript"> 5 var x = navigator; 6 document.write("CodeName=" + x.appCodeName); 7 document.write("<br />"); 8 document.write("MinorVersion=" + x.appMinorVersion); 9 document.write("<br />"); 10 document.write("Name=" + x.appName); 11 document.write("<br />"); 12 document.write("Version=" + x.appVersion); 13 document.write("<br />"); 14 document.write("CookieEnabled=" + x.cookieEnabled); 15 document.write("<br />"); 16 document.write("CPUClass=" + x.cpuClass); 17 document.write("<br />"); 18 document.write("OnLine=" + x.onLine); 19 document.write("<br />"); 20 document.write("Platform=" + x.platform); 21 document.write("<br />"); 22 document.write("UA=" + x.userAgent); 23 document.write("<br />"); 24 document.write("userProfile="+x.userProfile) 25 document.write("<br />"); 26 document.write("Language="+x.language) 27 document.write("<br />"); 28 document.write("BrowserLanguage=" + x.browserLanguage); 29 document.write("<br />"); 30 document.write("SystemLanguage=" + x.systemLanguage); 31 document.write("<br />"); 32 document.write("UserLanguage=" + x.userLanguage); 33 </script> 34 35 </body>
若是返回了「undefined」 (好比,browserLanguage,cpuClass,onLine等屬性)是由於你的當前瀏覽器使用的是Firefox或者chrome,當你切換到IE以後就會發現其中變化了。
下面的例子是返回你的IE瀏覽器的版本信息:
1 <html> 2 <body> 3 <script> 4 //獲取IE瀏覽器的版本號 5 //返回數值,顯示IE的主版本號 6 function getIEVer() { 7 var ua = navigator.userAgent; //獲取用戶端信息 8 var b = ua.indexOf("MSIE "); //檢測特殊字符串"MSIE "的位置 9 if (b < 0) { 10 return 0; 11 } 12 return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本號字符串,並轉換爲數值 13 } 14 alert(getIEVer()); //返回數值8(個人IE8) 15 </script> 16 </body> 17 </html>
像在個人IE瀏覽器中,userAgent返回以下信息:UA=Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; MSIE就表明了瀏覽器的版本,TridentIE排版引擎的名稱。
下面的例子能夠用來判斷當前瀏覽器的版本。
1 <html> 2 <head> 3 <title>JavaScript檢測瀏覽器</title> 4 </head> 5 <body> 6 <script type="text/javascript"> 7 var userAgent=navigator.userAgent.toLowerCase(), s, o = {}; 8 var browser={ 9 version:(userAgent.match(/(?:firefox|opera|safari|chrome|msie)[\/: ]([\d.]+)/))[1], 10 safari:/version.+safari/.test(userAgent), 11 chrome:/chrome/.test(userAgent), 12 firefox:/firefox/.test(userAgent), 13 ie:/msie/.test(userAgent), 14 opera: /opera/.test(userAgent ) 15 } /* 得到瀏覽器的名稱及版本信息 */ 16 17 if (browser.ie && browser.version > 6) 18 { 19 /* 判斷是否爲IE 6以上版本,是則執行如下操做 */ 20 document.writeln("<p>您使用的是IE "+browser.version+"<\/p>"); 21 } 22 if (browser.safari) { 23 doucment.writeln("<p>您使用的是safari瀏覽器<\/p>"); 24 } /* 判斷是否爲safari */ 25 if (browser.firefox) { 26 document.writeln("<p>您使用的是firefox瀏覽器<\/p>"); 27 } /* 判斷是否爲firefox */ 28 if (browser.chrome) { 29 document.writeln("<p>您使用的是chrome瀏覽器<\/p>"); 30 } /* 判斷是否爲chrome */ 31 if (browser.opera) { 32 document.writeln("<p>您使用的是opera瀏覽器<\/p>"); 33 } /* 判斷是否爲opera */ 34 </script> 35 </body> 36 </html>
ps:博文發出去後有園友建議用檢測功能來代替Agent,因爲剛接觸javascript並且並不以此爲主要工做,因此對我而言用處不大,若是你是作前端工做的,建議你學習使用Modernizr檢查功能,我簡單的看了一下介紹,感受是個強大的東西。