我在Chrome中运行一个函数时遇到了问题,但在Safari中,两个都是基于Webkit的浏览器。
我需要为Chrome自定义函数中的变量,但不需要为Safari自定义。
很可惜,我一直在使用以下代码来检测是否为基于Webkit的浏览器:
if ($.browser.webkit) {
但我需要检测:
if ($.browser.chrome) {
有没有办法编写类似的语句(与上面的语句工作方式相同)?
我在Chrome中运行一个函数时遇到了问题,但在Safari中,两个都是基于Webkit的浏览器。
我需要为Chrome自定义函数中的变量,但不需要为Safari自定义。
很可惜,我一直在使用以下代码来检测是否为基于Webkit的浏览器:
if ($.browser.webkit) {
但我需要检测:
if ($.browser.chrome) {
有没有办法编写类似的语句(与上面的语句工作方式相同)?
很遗憾,由于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更快更可靠。
if ($.browser.chrome) { // 这是Chrome浏览器 } else if ($.browser.safari) { // 这是Safari浏览器 }
注意:从JQuery版本1.9开始,$.browser已不再支持。您可以使用Modernizr或检测用户代理字符串来实现同样的功能。 - Haim Evgi