2012-01-19 73 views
1

所以我運行jQuery 1.3.2(是的,它是舊的,現在我不能升級)。一些沒有IE瀏覽器顯示爲真的IE6瀏覽器檢測

問題是我想放棄我們內部網站的IE6支持並升級瀏覽器。我有這個檢查

if($.browser.msie && $.browser.version=="6.0") { 
    // do something... 
} 

但在測試過程中(部分)Firefox用戶所看到的do something條件和should'nt是。以下是我認爲可能導致問題的一些用戶代理。

  • 的UserAgent:Mozilla的/ 5.0(Windows NT的6.1; WOW64)爲AppleWebKit/535.7(KHTML,例如Gecko)鉻/ 16.0.912.75 Safari瀏覽器/ 535.7
  • 的UserAgent:Mozilla的/ 5.0(視窗; U; Windows NT的5.1; en-US; rv:1.9.2.23)Gecko/20110920 Firefox/3.6.23
  • UserAgent:Mozilla/5.0(Windows NT 5.1)AppleWebKit/535.7(KHTML,如Gecko)Chrome/16.0.912.75 Safari/535.7 UserAgent:Mozilla/5.0(Windows; U; Windows NT; Windows NT; Windows NT 6.1; en-US; rv:1.9.2.25)Gecko/20111212 Firefox/3.6.25
  • UserAgent:Mozilla/5.1; EN-US; rv:1.9.2.12)Gecko/20101026 Firefox/3.6.12

有更多的IE6驗證我需要嗎?

注意:最終用戶沒有安裝插件。我想類似IE的選項卡可能會造成問題,但認爲並非如此

UPDATE:

所有響應,下面帶我到這一點,仍在測試,但它看起來不錯。任何雖然如何改善它?

var ie6 = $.browser.msie && parseInt($.browser.version) === 6 && typeof window['XMLHttpRequest'] !== "object"; 
if(typeof document.body.style.maxHeight === "undefined" && ie6) { 
    alert('Your browser is IE6'); 
} 

相關問題:

+1

修補你的jQuery副本使用較新的(大概是固定的)版本'.browser'對象? –

+0

http://api.jquery.com/jQuery.browser/該項目停留在jQuery的1.3.2,直到規範設計完成,但我們都知道如何繼續下去......一個人如何「修補你的jQuery副本「? –

+1

將生成'browser'對象的'jquery.js'內的源代碼替換爲新版本的源代碼。 –

回答

1

感謝所有來幫我找到了我一直在尋找,也許這可能幫助別人

var ie6 = $.browser.msie && parseInt($.browser.version) === 6 && typeof window['XMLHttpRequest'] !== "object"; 
if(typeof document.body.style.maxHeight === "undefined" && ie6) { 
    alert('Your browser is IE6'); 
} 
5

不要使用瀏覽器檢測。特徵檢測更好。如果你想顯示一條消息或只給IE 6用戶,我建議使用conditional comments

<!--[if IE 6]> 
    <script type="text/javascript"> 
     // do something... 
    </script> 
<![endif]--> 
+0

對不起,這沒有按預期工作,看到更新的問題 –

+0

@PhillPafford什麼沒有工作呢?鑑於上面的代碼(以及在quirksmode博客中鏈接的代碼),它應該可以工作。有條件的評論是專門爲此設計的,所以沒有任何理由不應該這樣做。 – Ktash

+0

一些上了年紀Firefox瀏覽器的認爲這是一個語法錯誤,在這裏嘗試這種方法時:http://stackoverflow.com/a/4226413/93966 –

0

如果你想稿件的網上找IE6及以下,你不能使用條件註釋:

如果( '\ V' === 'V' & & window.XMLHttpRequest!) { //做些什麼... }

+0

對不起如預期並沒有工作,請參見更新的問題 –

1

jQuery Documentation

的$ .browser屬性棄用的jQuery 1.3,其功能可能會在將來的jQuery的版本被移動到一個團隊支持的插件....

它始終是最好避免特定瀏覽器的代碼完全在可能的情況。 $ .support屬性可用於檢測對特定功能的支持,而不是依賴$ .browser。

Altenatively你可以使用:使用navigator object

  • IE條件語句

    1. 寫custome瀏覽器探測器,像this
  • +0

    對不起如預期並沒有工作,見更新問題 –

    0

    什麼是你正在試圖做的事需要知道瀏覽器是否爲IE6?讓我們消除這一點。

    +0

    「放棄對我們的內部網站IE6的支持」需要針對IE6瀏覽器 –