Javascript IE的偏移量正确计算?

Javascript IE的偏移量正确计算?,javascript,internet-explorer-8,Javascript,Internet Explorer 8,在我的javascript方法中,我有以下内容: if (getInternetExplorerVersion() != '-1') { alert("IE!"); Ice.Menu.showIt(targCompObject.offsetLeft + targCompObject.parentNode.offsetLeft, targCompObject.offsetTop

在我的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和铬合金上,其他部件工作正常。在IE上,我不得不改为计算,所以现在我有了主要的如果。。。这还是不好

你知道还有别的选择吗

更新:忘了提到IE的左边是正确计算的,但上面不是

临时解决办法(当然很难看)是,我已经从计算中减少了x个像素,以适应我希望函数在IE上显示弹出窗口的位置


谢谢。

您能否使用条件样式表并更改未正确显示的内容的样式

<!--[if IE]>
        <link rel="stylesheet" type="text/css" href="iefix.css" />
<![endif]-->

您不应该这样做“浏览器检测”。这是web开发中的一个大“禁忌”,因为它会导致许多后续问题

取而代之的是,首先确保您的页面没有在“怪癖模式”下运行,方法是检查您的HTML是否以正确的开头,然后验证您的页面并删除所有错误:

如果你的页面仍然需要IE的特殊处理,请查找并尝试使用它来做其他事情


(但是,在您的情况下,功能检测可能不是解决方案。有关此特定问题的更具体帮助,我们需要我提供详细信息:解释什么是“Ice”、HTML代码和/或运行示例).

有一个带有边距顶部的div,这是IE计算左偏移量不正确的原因。

此js函数在放置某些div的位置上呈现一个弹出窗口。如果我改变了那个div的位置,我会破坏所有的设计,这就是为什么我更喜欢js。