Javascript 狩猎旅行';s getBoundingClientRect()实现返回不正确的Top

Javascript 狩猎旅行';s getBoundingClientRect()实现返回不正确的Top,javascript,dom,safari,getboundingclientrect,Javascript,Dom,Safari,Getboundingclientrect,我有一个div,带有float:right,我试图得到它与视口顶部的距离。在除Safari之外的所有浏览器中,我都从元素.getBoundingClientRect().top获得了预期的结果。Safari似乎在报告元素与页面顶部的距离,而不是与视口的距离。这与(据我所知)中的定义相反。Safari只是没有遵守这里的规则,还是其他浏览器更能原谅我的一些我没有看到的错误?这似乎是一个bug,它会影响Safari在其加载事件中报告元素和滚动位置的方式。如果您在500毫秒超时的情况下运行完全相同的调用

我有一个
div
,带有
float:right
,我试图得到它与视口顶部的距离。在除Safari之外的所有浏览器中,我都从
元素.getBoundingClientRect().top
获得了预期的结果。Safari似乎在报告元素与页面顶部的距离,而不是与视口的距离。这与(据我所知)中的定义相反。Safari只是没有遵守这里的规则,还是其他浏览器更能原谅我的一些我没有看到的错误?

这似乎是一个bug,它会影响Safari在其加载事件中报告元素和滚动位置的方式。如果您在500毫秒超时的情况下运行完全相同的调用,那么一切都会按预期工作


当我听到我的错误报告时,我会更新。

也有同样的问题,500毫秒的技巧并不能解决我的问题

任务是在正文末尾添加一个脚本(任何脚本,甚至是一个空脚本)

例如:

[...]
  <script type="text/javascript">
    //content doesn't matter
  </script>
</body>
[...]
[…]
//内容无关紧要
[...]

你在其他“移动”浏览器中也有同样的体验吗?这不是在mobile Safari上。你收到任何回复吗?@RomanSnitko Nope。5年内一点也没有。我最近没有检查它是否仍然是一个问题。这是一张罚单:这个解决方案对我不起作用,但在正文末尾添加一个空标签起了作用。这个解决方案对我有效(y)。在运行我的函数之前添加500ms或
addEventListeners('load',()=>{}
。空脚本标记不起作用。