0

我在 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 样式表的相同代码)也变为 true 并且也添加了链接。所以当我使用 chrome 时我有两个样式表。两个代码完全相同,唯一的区别是“chrome”这个词变成了“safari”。

4

3 回答 3

1

要获得更好、更准确的 chrome 检测,请查看以下网址: https ://stackoverflow.com/a/11382806/2177992

除此之外,您可以像这样构造代码:

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

这样,两者将永远不会同时处于活动状态。

于 2013-03-17T20:13:39.813 回答
0
"mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.22 (khtml, like gecko) chrome/25.0.1364.172 safari/537.22"

Chrome 用户代理字符串包含safari在其中,因此当您检查 safari 是否在字符串中时,Chrome 和 Safar 都是如此。

有关检测浏览器的更好方法,请参阅这些问题

javascript中的浏览器检测?

检测浏览器版本

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

于 2013-03-17T20:06:40.870 回答
0

这将是因为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这部分字符串称为 a browser signature

于 2013-03-17T20:06:59.340 回答