亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2016年08月29日 10:08:53   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談jQuery為哪般去掉了瀏覽器檢測。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

由于做HTML5相關(guān)的項(xiàng)目,許多前衛(wèi)時髦的前端技術(shù)就需要考慮一下IE是否支持。要是在以前,可以很方便地調(diào)用jQuery的jQuery.browser來實(shí)現(xiàn)。

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

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

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

也不知道那時我的是不是腦子被門夾了半天反應(yīng)不過來為什么給廢掉了,反正我的目的很簡單,就是需要檢測當(dāng)前用戶用的是不是IE,如果不是IE,那么我就需要彈出相關(guān)提示信息告訴用戶你正在使用IE,某些功能可能不被支持云云。。。

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

但問題是覺得別扭,就為了檢測一個IE,就需要專門為此多出一大段丑陋而跟頁面功能邏輯毫不相關(guān)的代碼。這感覺像是安裝一個破解軟件而同時被捆綁一大批廣告插件一樣。

伴隨最近Windows8.1的發(fā)部隨便關(guān)心了一下隨之而來的IE11,官方居然說這貨會支持WegGL技術(shù)!IE11將會支持這個微軟一直唾棄的技術(shù)了。這其實(shí)還不太讓人奇怪。因?yàn)镮E被前端人員看成奇葩早在IE6時就開始了,這么多年過去了,開發(fā)者還不是和它共存了下來嘛。

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

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

因?yàn)闄z測IE本身就是不科學(xué)的。盡管一些HTML5特性IE現(xiàn)在不支持,但它在不斷的更新,所以不代表后來的版本中不支持。所以如果代碼中還存在很直白的專門針對IE的代碼就顯得相當(dāng)不科學(xué)了。一如上面提到的WegGL瀏覽器中3D相關(guān)的程序,可以預(yù)期,分明能夠在IE11中運(yùn)行,但代碼如果僅僅是檢測瀏覽器IE就罷工然后很驕傲地彈出個提示“請換用其他瀏覽器”,IE是不是很無辜。。。

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

這也就是為什么Modernizr.js會有用武之地的原因。為了確保代碼預(yù)期正常實(shí)現(xiàn),我們需要先檢測當(dāng)前瀏覽器是否支持該功能,如果支持,okay,代碼正常執(zhí)行,如果不支持,則執(zhí)行另一段代碼。

以上這篇淺談jQuery為哪般去掉了瀏覽器檢測就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • jquery常用技巧及常用方法列表集合

    jquery常用技巧及常用方法列表集合

    jquery常用技巧及常用方法列表集合,學(xué)習(xí)jquery的朋友可以收藏下。方便查找學(xué)習(xí)。
    2011-04-04
  • jquery遍歷函數(shù)siblings()用法實(shí)例

    jquery遍歷函數(shù)siblings()用法實(shí)例

    這篇文章主要介紹了jquery遍歷函數(shù)siblings()用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了jquery的siblings函數(shù)用于元素遍歷的相關(guān)技巧,需要的朋友可以參考下
    2015-12-12
  • 基于jQuery實(shí)現(xiàn)數(shù)字滾動效果

    基于jQuery實(shí)現(xiàn)數(shù)字滾動效果

    本文主要分享了基于jQuery實(shí)現(xiàn)數(shù)字滾動效果的示例代碼,附源碼下載。具有一定的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • Jquery判斷$("#id")獲取的對象是否存在的方法

    Jquery判斷$("#id")獲取的對象是否存在的方法

    如何判斷獲取的對象是否存在,貌似有很多方法實(shí)現(xiàn),下面以$("#id")舉例,為大家詳細(xì)介紹下具體的判斷過程
    2013-09-09
  • jQuery實(shí)現(xiàn)彈出窗口彈出div層的實(shí)例代碼

    jQuery實(shí)現(xiàn)彈出窗口彈出div層的實(shí)例代碼

    這篇文章主要介紹了jQuery實(shí)現(xiàn)彈出窗口彈出div層的實(shí)例代碼,點(diǎn)擊頁面的鏈接,彈出一個div層,同時頁面的其他部分變灰并且不能點(diǎn)擊,,具體實(shí)現(xiàn)代碼大家參考下本文吧
    2017-01-01
  • jquery使用ajax實(shí)現(xiàn)微信自動回復(fù)插件

    jquery使用ajax實(shí)現(xiàn)微信自動回復(fù)插件

    這篇文章主要介紹了jquery使用ajax實(shí)現(xiàn)微信自動回復(fù)插件,需要的朋友可以參考下
    2014-04-04
  • 最新評論