2012-02-01 3 views
2

Я попытался найти любое хорошее решение для обнаружения версий firefox < 3.6, чтобы донести до них уведомление о том, что мой сайт работает намного лучше в новых браузерах (не менее 3,6). Я столкнулся с http://api.jquery.com/jQuery.browser/, но не нашел примера, как обнаружить все версии ниже 3.6. Любой совет?Обнаружение Firefox <3.6

Спасибо!

+1

Какая черта вам нужно определить? Сделайте это вместо этого. – BalusC

+0

Возможно, это связано с производительностью. –

ответ

4
/* ===== Firefox ===== */ 

// Select Firefox 
if (jQuery.browser.mozilla) { 
    // do sth. 
} 

// Select Firefox 1.5.x to 2.x 
if (jQuery.browser.mozilla && jQuery.browser.version.substr(0, 3) == '1.8') { 
    // do sth. 
} 

// Select Firefox under 3.x 
if (jQuery.browser.mozilla && jQuery.browser.version < '1.9') { 
    // do sth. 
} 

// Select Firefox 3.0.x and above 
if (jQuery.browser.mozilla && jQuery.browser.version.substr(0, 3) == '1.9') { 
    // do sth. 
} 

// Select just Firefox 2.0.x 
if (jQuery.browser.mozilla && jQuery.browser.version == '1.8.1') { 
    // do sth. 
} 

// Select just Firefox 3.0.x 
if (jQuery.browser.mozilla && jQuery.browser.version == '1.9') { 
    // do sth. 
} 

// Select just Firefox 3.5.x 
if (jQuery.browser.mozilla && jQuery.browser.version == '1.9.1') { 
    // do sth. 
} 

// Select just Firefox 3.6.x 
if (jQuery.browser.mozilla && jQuery.browser.version == '1.9.2') { 
    // do sth. 
} 

/* ===== Internet Explorer ===== */ 

// Select Internet Explorer 
if (jQuery.browser.msie) { 
    // do sth. 
} 

// Select Internet Explorer above 6 
if (jQuery.browser.msie && jQuery.browser.version > 6) { 
    // do sth. 
} 

// Select Internet Explorer 7 and below 
if (jQuery.browser.msie && jQuery.browser.version <= 7) { 
    // do sth. 
} 

// Select just Internet Explorer 6 
if (jQuery.browser.msie && jQuery.browser.version == '6.0') { 
    // do sth. 
} 

// Select just Internet Explorer 7 
if (jQuery.browser.msie && jQuery.browser.version == '7.0') { 
    // do sth. 
} 

// Select just Internet Explorer 8 
if (jQuery.browser.msie && jQuery.browser.version == '8.0') { 
    // do sth. 
} 

// Select just Internet Explorer 9 
if (jQuery.browser.msie && jQuery.browser.version == '9.0') { 
    // do sth. 
} 

/* ===== Safari/Chrome ===== */ 

// Select Safari/Chrome 
if (jQuery.browser.safari) { 
    // do sth. 
} 

// Select Safari 3 
if (jQuery.browser.safari && (navigator.appVersion.indexOf('3.') != -1)) { 
    // do sth. 
} 

// Select Safari 4 
if (jQuery.browser.safari && (navigator.appVersion.indexOf('4.') != -1)) { 
    // do sth. 
} 

// Select Chrome 1 
if (jQuery.browser.safari && (navigator.appVersion.indexOf('1.') != -1)) { 
    // do sth. 
} 

// Select Chrome 3 
if (jQuery.browser.safari && (navigator.appVersion.indexOf('3.') != -1)) { 
    // do sth. 
} 

/* ===== Opera ===== */ 

// Select Opera 
if (jQuery.browser.opera) { 
    // do sth. 
} 

// Select Opera 9.5 and above 
if (jQuery.browser.opera && jQuery.browser.version >= '9.5') { 
    // do sth. 
} 

// Select just Opera 9.5 
if (jQuery.browser.opera && jQuery.browser.version == '9.5') { 
    // do sth. 
} 

// Select just Opera 10 
// Note: Opera 10's user agent looks like Opera/9.80 [...] Version/10.00 
if (jQuery.browser.opera && jQuery.browser.version == '9.8') { 
    // do sth. 
} 
1
var ua = $.browser; 
if (ua.mozilla && parseFloat(ua.version.slice(0,3)) < 3.6) { 
    alert("Do stuff for firefox 3.6 or less"); 
} 
+0

попробовал это, не работал: он отправил предупреждения, а также 3,6 FF – cukabeka

2

В общем, вам лучше обнаружить функции, а не версии. Обнаружение зависимости от того, возможности, необходимые, а не номер версии

+0

Проблема в том, что я не знаю, какая именно особенность делает разницу. Я вижу, что это работает с 3,6 по .. – cukabeka

+0

Ну какие функции вы используете? Blobs добавили примерно –

+0

, похоже, что это зависит от возможностей CSS и анализа. Добавил ли FF 3.6 некоторые функции CSS3? – cukabeka

3

Попробуйте

var itsOldFF = false; 
var itsFF = false; 
$.each($.browser, function (i, val) { 
    if (i == "mozilla" && itsFF == false){ 
     itsFF = true; 
     return; 
    } 
    if(itsFF && parseFloat(val) < 3.6) itsOldFF = true; 
}); 
return itsOldFF; 

EDIT

Демонстрация на jsFiddle.net

+0

@honestor сделал мое решение? –

+0

извините за поздний ответ, нет, это не так. FF3.6 не был обнаружен должным образом. – cukabeka

Смежные вопросы