JavaScript 运行时错误:无法获取未定义或空引用的属性“top”

JavaScript runtime error: Unable to get property 'top' of undefined or null reference

本文关键字:引用 属性 top 运行时错误 未定义 获取 JavaScript      更新时间:2023-09-26

使用 IE10 时,我收到错误JavaScript runtime error: Unable to get property 'top' of undefined or null reference尝试单击指向同一项目中网页的超链接时,JavaScript 应滚动到页面上的相应位置。

如果我使用除IE以外的任何其他浏览器,它可以从一个页面到另一个页面工作。但是,如果我在同一页面中使用相同的引用,它将在所有浏览器中上下滚动,但在离开页面时不会在IE中滚动。

链接

<li><a href="index.html#home_section">Home</a></li>

我使用的是jquery.nav.js版本3.0.0,页面在var offset = $(target).offset().top;时中断。

任何帮助将不胜感激:-)

如果浏览器是IE,则任何元素的Jquery offset().top计算都存在一些问题。要解决此问题,您可以使用本机 Javascript 来计算元素的顶部和左侧偏移量,并相应地使用它。这里 - 在 Javascript 方法下,该方法返回文档中任何元素的计算顶部和左侧的对象,它将适用于所有浏览器:

function findElementTotalOffset(obj) {
    var oleft = otop = 0;
    if (obj.offsetParent) {
        do {
            oleft += obj.offsetLeft;
            otop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    return {left : oleft, top : otop};
}

示例:var offset = findTotalOffset($(target)).top;