2010-02-05 48 views

回答

10

http://api.jquery.com/jQuery.browser/

isIE = $.browser.msie; 

$.browser成为过时的同时,但尚未取消激活。应该使用$.support。例如:$.support.boxModel

+0

jquery +1 - 为您节省跨浏览器支持的麻烦! – AdaTheDev 2010-02-05 23:07:37

+0

我添加了一个帖子来提供更多信息,但这真的是最好的答案。 – 2010-02-05 23:10:22

+0

用户代理字符串很容易伪造,至少在Opera和Safari中是如此。 – 2010-02-05 23:14:34

0
<html> 
<head> 
</head> 
<body> 
<script type="text/javascript"> 
    alert(navigator.appName); 
</script> 
</body> 
</html> 

这来回复以 '网景'(适用于Firefox)或 'Microsoft Internet Explorer中'(当我试图IE7 - 没有尝试过其他平台)

请参见下面的链接了解更多信息, 例如。

http://www.javascriptkit.com/javatutors/navigator.shtml

而这里的同样的事情用“如果” /“其他”的结构。

<html> 
<head> 
</head> 
<body> 
<script type="text/javascript"> 
    if (navigator.appName=="Microsoft Internet Explorer") { 
     alert("This is IE!"); 
    } 
    else { 
     alert("This is not IE!"); 
    } 
</script> 
</body> 
</html> 

其实你应该选择另一个帖子:坚持一个众所周知的图书馆,如jQuery的整理所有的边缘情况。

+0

我不认为你想发送一个警报窗口。 – joejoeson 2010-02-05 23:06:12

+0

@Jeremy:我不认为这是关键。 使用警报让OP可以尝试它并查看appName的值在不同的浏览器中。然后他可以用真实代码使用该变量。 – 2010-02-05 23:12:35

+0

是的,警报只是一个例子 - 但为了清晰起见,现在我已经包含了一个'if'/'else'。 我想在任何情况下,OP实际上都想要jQuery。 (我原本没有注意到标签)。 – monojohnny 2010-02-05 23:14:13

1

尽管这不是“最简单”的方式,但这里是帮助浏览器检测的非常好的一页。

http://www.w3schools.com/js/js_browser.asp

耶对W3C。

+0

+1为w3schools - 网络的真正奇迹之一! – monojohnny 2010-02-05 23:15:15

+0

嗯,链接不起作用,目前... – 2010-02-05 23:17:44

+0

@Marcel - 适用于我 - 您确定该网站并未阻止您查看该页面,因为您拥有伪造的User-Agent字符串? :-) – monojohnny 2010-02-05 23:28:00

10

我不会通过浏览器嗅探(即直接或通过Javascript框架)来做到这一点,因为用户代理字符串很容易被伪造(在这些情况下,这取决于JavaScript,可以关闭它)。

在这种情况下(IE与否),我会在您的HTML中使用conditional comments。无论JavaScript是否启用,他们都会一直工作。

+0

从来不知道这些 - 有趣的+1。它确实可以伪造一个代理字符串(事实上,Opera曾经有一个可以伪装成IE的选项):但是,浏览器嗅探的要点是提供用户浏览器的预期功能:如果他们说谎是,那么它的了望 - 我完全同意你关于javascript的观点 - 可能最好的路线(虽然还不完美)是检查服务器端。 [我认为这些条件性评论是?] – monojohnny 2010-02-05 23:21:47

+0

但是,如果你不想使用JavaScript,浏览器之间没有很大的区别。对于CSS,你会使用Css浏览器依赖黑客。 – powtac 2010-02-05 23:24:50

+0

@powtac - 假设大多数人使用'现代'浏览器,那么我会同意你的看法,但是对于更老的浏览器,对于应该呈现的HTML还是有不同的想法(或者甚至有他们的特殊标签'' )。 – monojohnny 2010-02-05 23:30:28

相关问题