Jquery代码在不应该返回true的时候返回true



我有这段代码在jquery添加不同的css样式根据浏览器,因为我不能得到的东西在完全相同的地方。这是在用户使用chrome时将链接添加到样式表的代码。

<script type= "text/javascript">
    $.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());
    if ($.browser.chrome) {
        document.write('<link rel="stylesheet" href="css/chrome.css" 
                                         type="text/css" media="screen">'); 
    }
</script>

然而,当我使用chrome,另一个代码(相同的一个添加链接到safari的样式表)也变得真实,并添加了一个链接。所以我有两个样式表,当我使用chrome。这两个代码是完全相同的东西,唯一的区别是"chrome"这个词被改为"safari"。

为了更好,更准确的铬检测,查看以下url:https://stackoverflow.com/a/11382806/2177992

除此之外,你还可以这样组织你的代码:

if ( chrome )
{
    //chrome stuff
}
else if ( safari )
{
    //safari stuff
}

"mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.22 (khtml, like gecko) chrome/25.0.1364.172 safari/537.22"

Chrome useragent字符串中有safari,所以当你检查safari是否在字符串中时,它将对Chrome和Safar都为真。

查看这些问题以更好地检测浏览器

javascript浏览器检测?

检测浏览器版本

有趣的相关文章:浏览器用户代理字符串的历史

这是因为navigator.userAgent.toLowerCase()包含safari。我的版本是mozilla/5.0 (windows nt 6.1) applewebkit/537.22 (khtml, like gecko) chrome/25.0.1364.172 safari/537.22

根据http://user-agent-string.info/?Fuas=mozilla%2F5.0+%28windows+nt+6.1%29+applewebkit%2F537.22+%28khtml%2C+like+gecko%29+chrome%2F25.0.1364.172+safari%2F537.22&test=4483&action=analyze,这部分字符串被称为browser signature

相关内容

  • 没有找到相关文章

最新更新