Javascript是一種廣泛使用并具有重要性的編程語言,在Web開發領域尤其如此。出于不同的原因,有時候代碼需要在不同的瀏覽器上運行。針對不同的瀏覽器類型使用不同的處理方式,瀏覽器類型就成為了非常重要的一種信息。接下來,本文將介紹如何判斷瀏覽器類型。
首先,我們可以使用navigator對象中的userAgent屬性,該屬性返回了客戶端瀏覽器發送的 HTTP User-Agent 標頭部分的值。通過匹配這個值,我們可以得到目標瀏覽器的類型。
function getBrowser(e) { var exploreName = navigator.userAgent.toLowerCase(); if ( /chrome/.test(exploreName) ) { return "Google Chrome"; } else if ( /firefox/.test(exploreName) ) { return "Firefox"; } else if ( /safari/.test(exploreName) ) { return "Safari"; } else if ( /msie/.test(exploreName) ) { return "Internet Explorer"; } else { return "unknown browser"; } }
上面的函數在檢查完所支持瀏覽器類型后,將返回特定瀏覽器名稱。此時我們可以添加其他的處理操作,或者在特定情況下重定向到特定網頁。
另一個重要的因素是瀏覽器的版本。使用相同名稱的瀏覽器可能會在不同的版本上有一些不同,其中包括所支持的操作和API等。如果需要在特定的瀏覽器版本上執行某些處理操作,就需要在代碼中檢查版本號。
function getBrowser(){ var userAgent = navigator.userAgent; var isOpera = userAgent.indexOf("Opera") >-1; var isIE = userAgent.indexOf("compatible") >-1 && userAgent.indexOf("MSIE") >-1 && !isOpera; var isFF = userAgent.indexOf("Firefox") >-1; var isSafari = userAgent.indexOf("Safari") >-1 && userAgent.indexOf("Chrome") == -1; var isChrome = userAgent.indexOf("Chrome") >-1 && userAgent.indexOf("Safari") >-1; var isIE10 = userAgent.indexOf("MSIE 10.0") >-1; var isIE9 = userAgent.indexOf("MSIE 9.0") >-1; var isIE8 = userAgent.indexOf("MSIE 8.0") >-1; var isIE7 = userAgent.indexOf("MSIE 7.0") >-1; var isIE6 = userAgent.indexOf("MSIE 6.0") >-1; if (isIE){ if (isIE6){ return "IE6";} if (isIE7){ return "IE7";} if (isIE8){ return "IE8";} if (isIE9){ return "IE9";} if (isIE10){ return "IE10";} return "IE11"; } else { if (isFF){ return "Firefox";} if (isOpera){ return "Opera";} if (isChrome){ return "Chrome";} if (isSafari){ return "Safari"; } } }
相比多數使用userAgent屬性的方法,本函數的實現方式是相對較為嚴格的,我們也可以獲取更詳細的信息,包括特定瀏覽器的版本號。
此外,還可以使用 jQuery中提供的$.browser對象來輕松獲取瀏覽器類型和版本號。
$.browser.version; // 當前瀏覽器的版本 $.browser.msie; // 判斷是否是IE瀏覽器 $.browser.mozilla; // 是否是火狐瀏覽器 $.browser.opera; // 是否是舊版Opera瀏覽器 $.browser.webkit; // 是否是Chrome、Safari等Webkit引擎瀏覽器
需要注意的是,$.browser方法已經在從jQuery1.9版中開始被棄用,在最新的版本中已經移除,因此如果您使用的是較新的jQuery版本,將無法使用該方法。
通過上述幾種方式,我們可以輕松獲取到特定瀏覽器的類型信息,針對每一類的瀏覽器加以處理,從而讓我們的web應用程序更加靈活。
下一篇css為什么是白色