在開發網頁時,經常會遇到一些需要根據瀏覽器內核不同而進行特定處理的情況。其中,IE瀏覽器的內核是最容易引起開發者頭疼的。jQuery提供了一種簡單的方法來判斷瀏覽器內核,下面我們來詳細介紹一下。
我們使用的是jQuery1.9版本,首先需要注意的是,jQuery1.9版本不再支持IE6、7、8瀏覽器,如果需要兼容這些瀏覽器,可以使用jQuery1.8版本。接下來我們進入正題,以下是判斷IE內核的代碼:
$(function(){ // 判斷是否為IE if (!!window.ActiveXObject || "ActiveXObject" in window) { // 獲取IE版本 var version = getIEVersion(); console.log('IE ' + version); // 進行IE內核特定處理 } else { // 非IE內核處理 } // 獲取IE版本函數 function getIEVersion() { var userAgent = navigator.userAgent; // 取得瀏覽器的userAgent字符串 var version = -1; if (userAgent.indexOf("MSIE") >0){ // 判斷是否IE<10瀏覽器 version = parseInt(userAgent.substring(userAgent.indexOf("MSIE") + 5, userAgent.indexOf(".", userAgent.indexOf("MSIE")))); } else if (userAgent.indexOf("Trident") >0) { // 判斷是否IE>=11瀏覽器 var trident = userAgent.indexOf("Trident/"); var rv = userAgent.indexOf("rv:"); version = parseInt(userAgent.substring(rv + 3, userAgent.indexOf(".", rv))); } return version; } });
上面代碼中window.ActiveXObject是IE特有的屬性,如果為真,則表明當前瀏覽器內核為IE。在代碼中,我們使用了!!window.ActiveXObject來強制轉換成布爾類型,而不是將window.ActiveXObject轉化成字符串再比較。同時我們還使用了in語法來判斷window對象中是否含有ActiveXObject這個屬性。
接下來,我們需要獲取IE版本號,通過version變量存儲。如果IE瀏覽器版本小于10,我們可以通過navigator.userAgent屬性獲取瀏覽器userAgent字符串,然后通過字符串截取的方式獲取IE版本號。如果是IE版本大于等于11,我們需要通過字符串截取的方式獲取IE版本號,在userAgent字符串中標識IE版本號的位置和10以下版本的不同。
最后,我們根據IE瀏覽器版本號進行特定處理。當然,如果是非IE內核的瀏覽器,我們也可以進行其他處理操作。