【问题标题】:Browser Detection via JS for Safari 5通过 JS 为 Safari 5 检测浏览器
【发布时间】:2011-03-08 19:53:25
【问题描述】:

如何检查用户当前的浏览器是否为 Safari 5?

更新

如果用户使用的是旧版浏览器,我们会在我们的网站上显示“不支持浏览器”消息。目前我们的错误出现在最新的 Safari 上,但它不应该出现。

【问题讨论】:

  • 等等,停下,为什么你要这样做?你不应该检查浏览器,你应该检查你想使用的功能
  • 确实如此。 (几乎)所有这些浏览器嗅探脚本都针对用户代理字符串进行测试,该字符串在 Safari 中很容易被欺骗(因此它假装它是另一个浏览器),并且您想要的解决方法不会弹出. 另请阅读nczonline.net/blog/2009/12/29/…
  • Browser Detection的可能重复

标签: javascript extjs


【解决方案1】:

见:

jsBrowsersDetect

或者

Browser detect

但这不是一个好的做法,不过,最好尽可能完全避免浏览器特定的代码。 JQuery $.support 属性(如果需要)可用于检测对特定功能的支持,而不是依赖于浏览器名称和版本。

【讨论】:

    【解决方案2】:

    如果您确实想要这样做,您可以按照 Ext 使用的相同方式检查用户代理。

    来自 Ext.js 的 sn-p:

        ua = navigator.userAgent.toLowerCase(),
        check = function(r){
            return r.test(ua);
        },
        DOC = document,
        isStrict = DOC.compatMode == "CSS1Compat",
        isOpera = check(/opera/),
        isChrome = check(/\bchrome\b/),
        isWebKit = check(/webkit/),
        isSafari = !isChrome && check(/safari/),
        isSafari2 = isSafari && check(/applewebkit\/4/), // unique to Safari 2
        isSafari3 = isSafari && check(/version\/3/),
        isSafari4 = isSafari && check(/version\/4/),
    

    我猜对于 Safari 5,您可以编写一个类似的测试,其中 version 为 5,尽管我没有检查 Safari 5 的用户代理字符串是什么样的。

    【讨论】:

      猜你喜欢
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      • 1970-01-01
      • 2023-03-23
      • 2012-09-19
      • 1970-01-01
      • 2015-07-14
      相关资源
      最近更新 更多