Javascript 通过JS进行Safari 5浏览器检测

Javascript 通过JS进行Safari 5浏览器检测,javascript,extjs,Javascript,Extjs,如何检查用户的当前浏览器是否为Safari 5 更新 我们在网站上进行了一项检查,如果用户使用的是旧浏览器,则会显示“不支持浏览器”消息。目前,我们的错误在最新的Safari中出现,不应该出现。请参阅: 或 但这不是一个好的做法,但是,最好尽可能完全避免使用特定于浏览器的代码。JQuery$.support属性(如果需要)可用于检测对特定功能的支持,而不依赖于浏览器名称和版本。请参阅: 或 但这不是一个好的做法,但是,最好尽可能完全避免使用特定于浏览器的代码。JQuery$.suppor

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

更新

我们在网站上进行了一项检查,如果用户使用的是旧浏览器,则会显示“不支持浏览器”消息。目前,我们的错误在最新的Safari中出现,不应该出现。

请参阅:

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

请参阅:


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

如果确实需要执行此操作,可以按照Ext使用的相同方法检查用户代理

Ext.js中的一段代码:

    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,您可以编写一个版本为5的类似测试,尽管我自己没有检查Safari 5的用户代理字符串是什么样子。

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

Ext.js中的一段代码:

    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,您可以在版本为5的地方编写类似的测试,尽管我自己没有检查Safari 5的用户代理字符串是什么样子。

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