2009-01-09 320 views
3

我在當前項目中有一個規範,要求我們告知用戶哪些瀏覽器最適合使用該Web應用程序。如果他們當前使用的瀏覽器版本不在我們的「理想」瀏覽器列表中,我們想要顯示一條消息。瀏覽器版本檢測

什麼是檢查用戶瀏覽器的特定版本的最佳方法。我知道以下使用jQuery,但這對特定版本沒有幫助。

$(document).ready(function() { 
    var b = ''; 
    $.each($.browser, function(i, val) { 
     if (i=='safari' && val==true) { b = 'safari'; } 
     if (i=='opera' && val==true) { b = 'opera'; } 
     if (i=='msie' && val==true) { b = 'msie'; } 
     if (i=='mozilla' && val==true) {b = 'mozilla'; } 
    }); 

    //Do Something With b, Like $('#dis').html(b); 
}); 

我們希望能夠說您的瀏覽器是Firexfox 2或更高版本或IE6或更高版本等?

回答

2

查看YUI User-Agent Detection

編輯:現在我已經告訴你如何,我只是想確保你知道這通常被認爲是反模式,對嗎?如果可以,我建議不要這樣做,但我意識到這並不總是一種選擇。

+0

謝謝你,但我不知道如何YUI檢測differers從我給的JQuery示例?它仍然沒有得到瀏覽器版本,例如Firefox 3.0.5。它只返回Firefox。如果我們可以使用標準JavaScript的JQuery庫,那也是最好的,因爲這是我們已經使用的。 – Sheff 2009-01-09 10:26:12

4

另外在docs.jquery.com檢查$ .browser.version

它可以返回爲Firefox 2.xx的2.0,檢查文檔:)

0

Internet Explorer 10及更高版本的行爲與IE 9及更低版本的行爲不同。使用JavaScript時,您需要以不同的方式處理這些情況。以下代碼爲我工作:)

//MSStream object supported only for IE 10 and 11 (hope this will work for above IE 11 too ..) 
    var isIE10or11 = window.MSStream; 

    //FormData object allow you to send form data as key and value pairs with ajax requests. Supported in modern browsers. 
    var isFormDataSupported = (window.FormData !== undefined); 

    if(isIE10or11 && isFormDataSupported){ 
     alert('IE 10 or 11'); 
    } 
    else if(!isIE10or11 && isFormDataSupported){ 
     alert('HTML 5 browser Excluding IE'); 
    } 
    else{ 
     //Neither supports MSStream nor FormData object 
     alert('IE Version 9 or below'); 
    }