jQuery:只针对Safari

时间:2011-07-27 18:06:28

标签: jquery safari conditional

我正在使用这段jQuery代码来定位Safari:

if ($.browser.safari) {
    $('#div1').css({'margin-top': '-22px'});
    $('#div2').css({'margin-top': '-17px'});
}

奇怪的是,它也针对Chrome(至少是Mac版)。我可以使用哪些jQuery代码会忽略Chrome并仅定位Safari?

我很感谢专家的建议。

5 个答案:

答案 0 :(得分:33)

(编辑以便Chrome不得位于用户代理中):

if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1)  { 
   //i.e. apply safari class via jquery
}

答案 1 :(得分:4)

if (navigator.userAgent.indexOf('Safari') && !navigator.userAgent.indexOf('Chrome')) {
    // Yep, it's Safari =)
}else {
    // Nope, it's another browser =(
}

答案 2 :(得分:1)

功能检测比浏览器嗅探更受欢迎,但我确实在SO上找到了这个解决方案:

Detect Safari using jQuery

答案 3 :(得分:0)

试试这个:

$.browser.safari = ( $.browser.safari && /chrome/.test(navigator.userAgent.toLowerCase()) ) ? false : true;

我更喜欢这个,因为你正确地设置了jQuery属性,然后可以在其他地方使用它,而无需经常检查userAgent。

答案 4 :(得分:0)

这很好用于了解浏览器是否为Safari。

if(navigator.userAgent.indexOf('Safari') !=-1 && navigator.userAgent.indexOf('Chrome') == -1)
{
    alert('its safari');
}else{
    alert('its not safari');
}