确定浏览器是否为IE浏览器的最简单和最好的方法是什么?
http://api.jquery.com/jQuery.browser/
isIE = $.browser.msie;
$.browser
成为过时的同时,但尚未取消激活。应该使用$.support
。例如:$.support.boxModel
jquery +1 - 为您节省跨浏览器支持的麻烦! – AdaTheDev 2010-02-05 23:07:37
我添加了一个帖子来提供更多信息,但这真的是最好的答案。 – 2010-02-05 23:10:22
用户代理字符串很容易伪造,至少在Opera和Safari中是如此。 – 2010-02-05 23:14:34
<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的整理所有的边缘情况。
我不认为你想发送一个警报窗口。 – joejoeson 2010-02-05 23:06:12
@Jeremy:我不认为这是关键。 使用警报让OP可以尝试它并查看appName的值在不同的浏览器中。然后他可以用真实代码使用该变量。 – 2010-02-05 23:12:35
是的,警报只是一个例子 - 但为了清晰起见,现在我已经包含了一个'if'/'else'。 我想在任何情况下,OP实际上都想要jQuery。 (我原本没有注意到标签)。 – monojohnny 2010-02-05 23:14:13
+1为w3schools - 网络的真正奇迹之一! – monojohnny 2010-02-05 23:15:15
嗯,链接不起作用,目前... – 2010-02-05 23:17:44
@Marcel - 适用于我 - 您确定该网站并未阻止您查看该页面,因为您拥有伪造的User-Agent字符串? :-) – monojohnny 2010-02-05 23:28:00
我不会通过浏览器嗅探(即直接或通过Javascript框架)来做到这一点,因为用户代理字符串很容易被伪造(在这些情况下,这取决于JavaScript,可以关闭它)。
在这种情况下(IE与否),我会在您的HTML中使用conditional comments。无论JavaScript是否启用,他们都会一直工作。
从来不知道这些 - 有趣的+1。它确实可以伪造一个代理字符串(事实上,Opera曾经有一个可以伪装成IE的选项):但是,浏览器嗅探的要点是提供用户浏览器的预期功能:如果他们说谎是,那么它的了望 - 我完全同意你关于javascript的观点 - 可能最好的路线(虽然还不完美)是检查服务器端。 [我认为这些条件性评论是?] – monojohnny 2010-02-05 23:21:47
但是,如果你不想使用JavaScript,浏览器之间没有很大的区别。对于CSS,你会使用Css浏览器依赖黑客。 – powtac 2010-02-05 23:24:50
@powtac - 假设大多数人使用'现代'浏览器,那么我会同意你的看法,但是对于更老的浏览器,对于应该呈现的HTML还是有不同的想法(或者甚至有他们的特殊标签'
您是否使用任何特定的语言? – joejoeson 2010-02-05 23:05:40
以上都是JavaScript(或框架)。 – 2010-02-05 23:07:15
这个问题被标记为JavaScript。 – 2010-02-06 00:01:07