我正在使用这段jQuery代码来定位Safari:
if ($.browser.safari) {
$('#div1').css({'margin-top': '-22px'});
$('#div2').css({'margin-top': '-17px'});
}
奇怪的是,它也针对Chrome(至少是Mac版)。我可以使用哪些jQuery代码会忽略Chrome并仅定位Safari?
我很感谢专家的建议。
答案 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上找到了这个解决方案:
答案 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');
}