2024年ie最新版本:ie版本怎麼降低版本

最近有一個項目是以華為的響應式效果為參考的,為了把項目做好,必然要把華為的源代碼重頭到尾過一遍,在切圖工作這已是家常便飯,當中有幾點發現,華為是基於bootstrap布局,運用了bootstrap的幻燈片組件,又進行了一些二次方法添加改造,而這次個過程中又碰觸到了另外一個超屌的js判斷ie版本的解決方案,決定將它分享:

jQuery在1.9版本之前,提供了一個瀏覽器對象檢測的屬性$.browser,使用率極高。但是在1.9版本發佈之後,大家鍾愛的這個屬性被jQuery無情的拋棄了。大家開始着手尋找$.browser的替代方案。於是各種利用IE bug的檢測方法被搜了出來:

// shortest from a Russianvar ie = !-[1,]// Option from Dean Edwards:var ie = /*@cc_on!@*/false// Use the commented line:var ie//@cc_on=1// Variation (shorter variable):var ie = ‘v’==’v’// Option to Gareth Hayes (former record-holder):var ie = !+”v1″

還有一些讀取navigator.userAgent的方式,在蘋果看來這些寫法都不夠友好,也不容易記憶,在搜索和挑選之後,終於找到了一個容易理解且友好方便的寫法!

解決方案

IE知道自身毛病很多,於是提供的一套官方的HTML hack方式:

<!–[if IE]>

// 全部IE版本可見

<![endif]–>

<!–[if IE 6]>

// IE6可見

<![endif]–>

依次等等。

這樣的寫法在其它瀏覽器里,完全就是一坨注釋而直接遭到無視,但在IE里卻不會。IE會分析裏面的提到的版本號,並根據版本號確定要不要解析裏面的DOM元素和文本內容。等一下!DOM元素?那豈不是可以使用js來獲取裏面的DOM元素?反正誰看到了,誰就是IE!於是,國外大神就有了下面的寫法:

var isIE = function(){ var b = document.createElement(‘b’)

b.innerHTML = ‘<!–[if IE]><i></i><![endif]–>’

return b.getElementsByTagName(‘i’).length === 1}

這也太巧妙了!首先生成了一個b元素,設置它的innerHTML為一坨只有IE才認識的注釋,注釋里只有一個空的標籤,然後讀取裏面的出現的元素i的個數是不是等於1,是不是等於1,是不是等於1。。。。

在大蘋果看來,這樣的寫法比其它任何一種都要好。至於為什麼生成一個b元素並且裏面寫一個i元素而不是div或者strong,更多是考慮到前者位元組量更小。

檢測各個IE版本的方法也就順理成章了:

var isIE6 = function(){ var b = document.createElement(‘b’)

b.innerHTML = ‘<!–[if IE 6]><i></i><![endif]–>’

return b.getElementsByTagName(‘i’).length === 1}// var isIE7// …

更進一步

在蘋果看來,還可以進一步將版本號提取成參數,就能生成一個通用的檢測IE版本的函數了:

var isIE = function(ver){ var b = document.createElement(‘b’)

b.innerHTML = ‘<!–[if IE ‘ + ver + ‘]><i></i><![endif]–>’

return b.getElementsByTagName(‘i’).length === 1}if(isIE(6)){ // IE 6}// …if(isIE(9)){ // IE 9}

這樣想檢測哪個版本都毫無壓力。但是,如果只想檢測是不是IE,而不關心瀏覽器版本,那隻需要在調用函數的時候,不傳遞參數即可。

var ie = isIE()

最後依次貼下在各大瀏覽器里測試代碼的截圖。

alert(‘ie6:’ + isIE(6) + ‘n’ + ‘ie7:’ + isIE(7) + ‘n’ + ‘ie8:’ + isIE(8) + ‘n’ + ‘ie9:’ + isIE(9) + ‘n’ + ‘ie:’ + isIE())

超屌的js判斷ie版本方法

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/220452.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 11:27
下一篇 2024-12-09 11:27

相關推薦

發表回復

登錄後才能評論