前端開發中,經常需要判斷瀏覽器或系統類別型,以解決相容性問題。
使用Javascript判斷瀏覽器和作業系統類型是一件很容易的事情,但如何最全面、最簡單的做出判斷,是不容易的,本文從Ext 2.2.1中摘錄了其判斷方法,這是一種目前最全面最簡潔的方法,包含了最新的IE8、Chrome瀏覽器、Air瀏覽的判斷,下面是代碼,並且包含了注釋:
var ua = navigator.userAgent.toLowerCase(); var isStrict = document.compatMode == "CSS1Compat", // 是否定義DOCUMENT類型 isOpera = ua.indexOf("opera")>-1, // 是Opera isChrome = ua.indexOf("chrome")>-1, //是Chrome isSafari = !isChrome&&(/webkit|khtml/).test(ua), //是Safari isSafari3 = isSafari&&ua.indexOf("webkit/5")! = -1, // Safari3 isIE = !isOpera&&ua.indexOf("msie")>-1, //IE6 isIE7 = !isOpera&&ua.indexOf("msie 7")>-1, // IE7 isIE8 = !isOpera&&ua.indexOf("msie 8")>-1, //IE8 isGecko = !isSafari&&!isChrome&&ua.indexOf("gecko")>-1, // Gecko核心 isGecko3 = isGecko&&ua.indexOf("rv:1.9")>-1, // Gecko3核心 isBorderBox = isIE&&!isStrict, // 使用盒模型 isWindows = (ua.indexOf("windows")! = -1||ua.indexOf("win32")! = -1), // 是Windows系統 isMac = (ua.indexOf("macintosh")! = -1||ua.indexOf("mac os x")! = -1), // 是MacOS系統 isAir = (ua.indexOf("adobeair")! = -1), // 是用Adobe Air瀏覽 isLinux = (ua.indexOf("linux")! = -1), // 是Linux系統 isSecure = window.location.href.toLowerCase().indexOf("https") === 0; // 是SSL瀏覽 |