Javascript 带有offset()jquery函数的跨浏览器问题

Javascript 带有offset()jquery函数的跨浏览器问题,javascript,jquery,internet-explorer-7,cross-browser,offset,Javascript,Jquery,Internet Explorer 7,Cross Browser,Offset,jQuery中的offset()函数存在跨浏览器问题。例如,我正在查找定位标记的偏移量 例如,$('#anchorid').offset().top 在Firefox 3.6=205中 在IE8=204中 在IE7=553中 正如您所看到的,每个返回值都有差异。我不太关心FF和IE8之间的区别,但我支持IE7和其他 我是否可以使用另一个相同或类似的跨浏览器功能,或者对此进行修复?您的标记可能有问题(非跨浏览器)。但作为替代,您可以尝试使用本机javascript document.getEl

jQuery中的
offset()
函数存在跨浏览器问题。例如,我正在查找定位标记的偏移量

例如,
$('#anchorid').offset().top

  • 在Firefox 3.6=205中
  • 在IE8=204中
  • 在IE7=553中
正如您所看到的,每个返回值都有差异。我不太关心FF和IE8之间的区别,但我支持IE7和其他


我是否可以使用另一个相同或类似的跨浏览器功能,或者对此进行修复?

您的标记可能有问题(非跨浏览器)。但作为替代,您可以尝试使用本机javascript

document.getElementById('anchorid').offsetTop
当然,如果您想获得整个页面的偏移量,可以使用如下函数:

function findTotalOffset(obj) {
  var ol = ot = 0;
  if (obj.offsetParent) {
    do {
      ol += obj.offsetLeft;
      ot += obj.offsetTop;
    }while (obj = obj.offsetParent);
  }
  return {left : ol, top : ot};
}

在IE8中,当我的脚本加载到我们想要获取的
offset().top
元素不存在的页面时,我遇到了这个问题

我是这样解决的:

if ($('#element').length){
    $('#element').offset().top // ...
}

如果元素不存在,请不要执行
offset()。top

是否有示例页面?那太离谱了。