【问题标题】:Detect Firefox < 3.6检测 Firefox < 3.6
【发布时间】:2012-02-24 03:33:36
【问题描述】:

我试图找到任何好的解决方案来检测低于 3.6 的 firefox 版本,以便向他们发出通知,即我的网站在较新的浏览器(至少 3.6)中运行得更好。我偶然发现了http://api.jquery.com/jQuery.browser/ - 但没有找到如何检测低于 3.6 的所有版本的示例。有什么建议吗?

谢谢!

【问题讨论】:

  • 您需要检测哪个特征?改为这样做。
  • 可能与性能有关。

标签: javascript browser-detection firefox-3


【解决方案1】:
/* ===== 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.
}

【讨论】:

    【解决方案2】:

    试试这个

    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;
    

    编辑

    jsFiddle.net上的演示

    【讨论】:

    • 抱歉回复晚了,不,没有。 FF3.6 未被正确检测到。
    【解决方案3】:

    一般来说,您最好检测功能而不是版本。检测您需要的任何功能,而不是版本号

    【讨论】:

    • 问题是:我不知道究竟是哪个功能有所作为。我只看到它从 3.6 开始工作..
    • 那么您使用的是哪些功能?大约在那时添加了 Blob
    • 它似乎取决于 CSS 功能和解析。 FF 3.6 是否添加了一些 CSS3 功能?
    • 它可能有,我不记得具体是什么时候添加的。
    【解决方案4】:
    var ua = $.browser;
    if (ua.mozilla && parseFloat(ua.version.slice(0,3)) < 3.6) {
        alert( "Do stuff for firefox 3.6 or less" );
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-15
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多