在我的javascript方法中,我有这个:
if (getInternetExplorerVersion() != '-1') {
alert("IE!");
Ice.Menu.showIt(targCompObject.offsetLeft
+ targCompObject.parentNode.offsetLeft,
targCompObject.offsetTop
+ targCompObject.parentNode.offsetTop, popupMenu,
targComp);
} else {
Ice.Menu.showIt(targCompObject.offsetLeft,
targCompObject.offsetTop, popupMenu, targComp);
}
在FF和Chrome上,其他部分工作正常。在IE上,我不得不改为计算,所以现在我有主要的if ...这仍然不好。
你知道其他选择吗?
更新:忘记提及对于IE,左边是正确计算的,但顶部不是。
暂时的解决方法(当然很丑陋)是我从计算中减少了x个像素,以适应我希望函数在IE上显示弹出窗口的位置。
感谢。
答案 0 :(得分:1)
您是否可以使用条件样式表并更改未正确显示的样式?
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="iefix.css" />
<![endif]-->
答案 1 :(得分:0)
你永远不应该像这样做“浏览器检测”。这在网络开发中是一个很大的“不可”,因为它会导致许多后续问题。
相反,首先确保您的网页未以“怪癖模式”运行,检查您的HTML是否以正确的DOCTYPE开头,然后验证您的网页并删除所有错误:http://validator.w3.org/
如果您的页面仍然需要特殊处理IE查找"feature detection"并尝试使用它来做其他事情。
(但在您的情况下,功能检测可能不是解决方案。有关此特定问题的更具体帮助,我们需要详细说明:解释“Ice”是什么,HTML代码和/或运行示例)
答案 2 :(得分:0)
有一个带有margin-top的div,这是IE的左偏移计算错误的原因。