如何使用jQuery检测浏览器是否为Chrome?

57

我在Chrome中运行一个函数时遇到了问题,但在Safari中,两个都是基于Webkit的浏览器。

我需要为Chrome自定义函数中的变量,但不需要为Safari自定义。

很可惜,我一直在使用以下代码来检测是否为基于Webkit的浏览器:

if ($.browser.webkit) {

但我需要检测:

if ($.browser.chrome) {

有没有办法编写类似的语句(与上面的语句工作方式相同)?


2
也许你可以发布这个有问题的函数,看看我们能否帮助你在Chrome中使其正常工作? - Todd
这个函数相当长,我知道如何修复它,我只需要能够为Chrome进行自定义。 - TaylorMac
3
区分Chrome与Safari浏览器的方法(使用jQuery浏览器对象):if ($.browser.chrome) { // 这是Chrome浏览器 } else if ($.browser.safari) { // 这是Safari浏览器 }注意:从JQuery版本1.9开始,$.browser已不再支持。您可以使用Modernizr或检测用户代理字符串来实现同样的功能。 - Haim Evgi
虽然那是个好主意,但我感觉自己已经通过足够的工作知道问题出在哪里了。 - TaylorMac
1
Haim,谢谢。你能把这个发成答案吗,这样我就可以接受它了? - TaylorMac
11个回答

1

很遗憾,由于Opera的最新更新,当在Opera中进行测试时,!!window.chrome(以及对窗口对象的其他测试)会返回true。

Conditionizr能为您处理此问题并解决Opera问题:

conditionizr.add('chrome', [], function () {
    return !!window.chrome && !/opera|opr/i.test(navigator.userAgent);
});

我强烈建议您使用它,因为上述所有内容现在都无效。
这将帮助您完成以下操作:
if (conditionizr.chrome) {...}

Conditionizr负责其他浏览器检测,并且比jQuery的hack更快更可靠。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接