我正在使用这些jQuery代码来定位Safari:
if ($.browser.safari) {
$('#div1').css({'margin-top': '-22px'});
$('#div2').css({'margin-top': '-17px'});
}
奇怪的是,它也针对Chrome(至少是Mac版)。我可以使用哪些jQuery代码会忽略Chrome并仅定位Safari?
我将非常感谢专家的建议。
(编辑以便Chrome不得位于用户代理中):
(Edit2,因为Chrome for iOS在其用户代理中具有“CriOS”而不是“Chrome”):
if (
navigator.userAgent.indexOf('Safari') != -1 &&
navigator.userAgent.indexOf('Chrome') == -1 &&
navigator.userAgent.indexOf('CriOS/') == -1
) {
//i.e. apply safari class via jquery
}
附:您应该考虑使用Feature Detection根据当前浏览器的操作来更改您的网站,而不是检查用户代理,您必须定期更新。
if (navigator.userAgent.indexOf('Safari') && !navigator.userAgent.indexOf('Chrome')) {
// Yep, it's Safari =)
}else {
// Nope, it's another browser =(
}
功能检测比浏览器嗅探更受欢迎,但我确实在SO上找到了这个解决方案:
试试这个:
$.browser.safari = ( $.browser.safari && /chrome/.test(navigator.userAgent.toLowerCase()) ) ? false : true;
我更喜欢这个,因为你正确地设置了jQuery属性,然后可以在其他地方使用它,而无需经常检查userAgent。
这很好用于了解浏览器是否为Safari。
if(navigator.userAgent.indexOf('Safari') !=-1 && navigator.userAgent.indexOf('Chrome') == -1)
{
alert('its safari');
}else{
alert('its not safari');
}