我在哪里将此脚本放在HTML中才能使用?我需要做些什么改变?
<script type="text/javascript">
var browser=navigator.appName;
if(browser="Microsoft Internet Explorer")
{
document.getElementById("html").innerHTML="\
<body><p>Your browser is IE.</p></body>";
}
</script>
答案 0 :(得分:7)
我可以提出一个稍微替代的建议,跳过可欺骗的UA字符串,并使用Microsoft实现的(并且符合标准的)策略:
<!--[if ie]>
<script type="text/javascript">
document.getElementyId("html").innerHTML = "<body><p>Your browser is IE.</p></body>";
</script>
<![endif]-->
要使用此功能,请将其放在文档的head
中。我不认为它可以放在里面的脚本标签中(因为它基于html注释语法,而不是JavaScript)。
答案 1 :(得分:2)
如果可能,我建议避免直接浏览器检测。
几乎每个人都希望检测特定浏览器(通常是IE),这是因为他们想要使用的特定功能在浏览器中不可用,或者有错误。
但是浏览器检测作为一种策略失败的原因有很多:
那么你应该做什么而不是浏览器检测呢?
检测功能。有很多方法可以做到这一点,但我所知道的最佳解决方案是一个名为Modernizr的脚本。将此脚本放在您的站点中,您的页面将被赋予一堆CSS类和Javascript属性,您可以使用它们来确定给定的功能是否可用。
例如,如果您想使用渐变您的网站,大多数浏览器可以使用CSS,但IE和旧版本的其他浏览器不能。对于这些浏览器,您可以轻松地使用背景图像。 Modernizr将为您提供cssgradients
或no-cssgradients
的CSS类,您可以相应地设置这两个类的样式。
将缺少的功能添加到浏览器中。这更棘手,但对于某些功能,它可以完成,特别是对于IE。一个很好的例子是CSS3Pie这是一个允许IE使用CSS border-radius
功能(以及一个或两个其他功能)的黑客,这在所有其他浏览器中都可用。这样的其他一些小脚本可以改善IE的功能。
使用像JQuery这样的库来完成所有这些工作。使用JQuery,您可以更加自信,大多数Javascript代码都适用于所有浏览器。
如果您必须使用浏览器检测来判断用户是否正在运行IE(并且我接受在某些情况下有必要),请根据@David Thomas的回答使用条件注释。但在考虑其他任何方法后,请谨慎行事。
答案 2 :(得分:1)
if(browser=="Microsoft Internet Explorer")
==用于比较,=用于作业
将其放在头部标签中。