【发布时间】:2010-05-26 19:48:38
【问题描述】:
我想根据浏览器是否为 IE7 更改我的 javascript 代码行。以下是任何其他浏览器的代码:
function showHint(myId)
{
document.getElementById(myId).style.display = "inline-block";
}
对于 IE7,我想要 display = "inline"。
我尝试过条件编译(this 向我展示了如何检测浏览器),但没有成功:
function showHint(myId)
{
document.getElementById(myId).style.display = "inline-block";
/*@cc_on
@if(navigator.appVersion.indexOf(“MSIE 7.”)!=-1)
{
document.getElementById(myId).style.display = "inline";
}
@*/
}
非常感谢任何帮助!
编辑:我没有使用 JQuery。
【问题讨论】:
-
你为什么需要这个?如果您真正追求的是特征检测 peter.michaux.ca/articles/…,那么用户代理嗅探是一种不好的方法
-
你的问题是“为什么需要显示“inline”而不是“inline-block”?因为在 IE7 中,“inline-block”在元素下方显示一行,而“inline”没有t.
-
什么是文档类型?页面是以标准模式还是 quirksmode 呈现的?你在validator.w3.org 中验证了吗?
-
Jeff Meatball Yang 的回答是最好的,因为它是唯一一个不会被浏览器愚弄的浏览器(除非出现其他浏览器并开始支持 IE 的条件 cmets,但这不太可能)。另一种方法是切换
classNames,并在 CSS 中设置样式(更好地分离关注点)。
标签: javascript internet-explorer internet-explorer-7 conditional-compilation