jQuery為哪般去掉了瀏覽器檢測

來源:互聯網
上載者:User

由於做HTML5相關的項目,許多前衛時髦的前端技術就需要考慮一下IE是否支援。要是在以前,可以很方便地調用jQuery的jQuery.browser來實現。

If(jQuery.browser.msie) alert(“DIE IE!”)

但這一便利在jQuery 1.9之後就不複存在了。突然覺得像失去了一個最親密的戰友,一個我一搞開發就離不開的好基友,一個我離開了就 無法寫出跨瀏覽器的前端代碼的好工具。一下子我竟不知道該如何是好。

然後每次需要考慮IE的時候,我就會去google一下,如何用1.9版本的jQuery來檢測IE,但StackOverFlow上的多數回答都告訴我:jQuery1.9廢掉勒jQuery.browser,建議用jQuery.support,但是沒有人告訴我為什麼。

也不知道那時我的是不是腦子被門夾了半天反應不過來為什麼給廢掉了,反正我的目的很簡單,就是需要檢測目前使用者用的是不是IE,如果不是IE,那麼我就需要彈出相關提示資訊告訴使用者你正在使用IE,某些功能可能不被支援云云。。。

無奈,以至於我的編碼回到了那個沒有jQuery的石器時代,用最原始的最plain的JavaScript代碼來檢測IE,而關於這樣的方法,由於有無數前輩在與IE的博弈中積累了大量經驗,現成的方法已經寫過N多了,所以我也就隨便揀一個用著。而且每次用的都還不一樣,下次遇到要檢測IE的時候,又去Google一把,得到另一段代碼達到相同的效果。

但問是覺得彆扭,就為了檢測一個IE,就需要專門為此多出一大段醜陋而跟頁面功能邏輯毫不相關的代碼。這感覺像是安裝一個破解軟體而同時被捆綁一大批廣告外掛程式一樣。

伴隨最近Windows8.1的發部隨便關心了一下隨之而來的IE11,官方居然說這貨會支援WegGL技術!IE11將會支援這個微軟一直唾棄的技術了。這其實還不太讓人奇怪。因為IE被前端人員看成奇葩早在IE6時就開始了,這麼多年過去了,開發人員還不是和它共存了下來嘛。

但是IE11支援WebGL跟本文的毛線關係呢?是沒多大關係,但我突然意識到之前HTML5項目中用Three.js寫的東西可以在IE上運行了,至少在IE11上!所以之前關於IE的檢測顯得很二很不合邏輯。我天靈蓋似乎一道金光冒出,走出了之前的一個誤區:確實不需要檢測使用者使用的是不是IE瀏覽器。我們的目的是要讓代碼正常運行。如果當前瀏覽器支援我們代碼中的特性,那麼就正常運行,如果不支援,那就罷工給出提示唄。

所以我似乎理解為什麼jQuery在1.9中不支援jQuery.browser了,轉而給出了support這個API,而且當我再次搜尋“檢測IE”相關的問題時,也有聲音建議用Modernizr.js(一個檢測瀏覽器對HTML5,CSS3支援情況的JavaScript庫)。

因為檢測IE本身就是不科學的。儘管一些HTML5特性IE現在不支援,但它在不斷的更新,所以不代表後來的版本中不支援。所以如果代碼中還存在很直白的專門針對IE的代碼就顯得相當不科學了。一如上面提到的WegGL瀏覽器中3D相關的程式,可以預期,分明能夠在IE11中運行,但代碼如果僅僅是檢測瀏覽器IE就罷工然後很驕傲地彈出個提示“請換用其他瀏覽器”,IE是不是很無辜。。。

另外還有個原因不要只是檢測瀏覽器是不是IE,那就是各瀏覽器間本身就有差異,有差異是正常的,即使是除了IE外的FireFox,Chrome,Opera, Safari之類的,在各個Web標準的支援和實現上也不是完全一致。這也就是為什麼一個樣式在Chrome中調試正常了,到FF中顯得有點彆扭。如果是JavaScript代碼中的差異,是否我們又該寫一段檢測FF的代碼。或者某天發現在Opera中某個功能出來的結果有偏差,那又要寫一段檢測Opera的代碼,顯示這種思路是有問題的。

這也就是為什麼Modernizr.js會有用武之地的原因。為了確保代碼預期正常實現,我們需要先檢測當前瀏覽器是否支援該功能,如果支援,okay,代碼正常執行,如果不支援,則執行另一段代碼。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.