首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery代码在不应该返回true时返回true

Jquery代码在不应该返回true时返回true
EN

Stack Overflow用户
提问于 2013-03-18 04:03:13
回答 3查看 73关注 0票数 0

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

代码语言:javascript
复制
<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”。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-18 04:13:40

要获得更好、更准确的铬元素检测,请查看以下url:https://stackoverflow.com/a/11382806/2177992

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

代码语言:javascript
复制
if ( chrome )
{
    //chrome stuff
}
else if ( safari )
{
    //safari stuff
}

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

票数 1
EN

Stack Overflow用户

发布于 2013-03-18 04:06:41

代码语言:javascript
复制
"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都是如此。

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

Browser detection in javascript?

Detect version of browser

有趣的相关文章:History of the browser user-agent string

票数 0
EN

Stack Overflow用户

发布于 2013-03-18 04:06:59

这是因为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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15465541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档