尝试获取元素onload的偏移顶部值时获得0

Kic*_*ick 9 html javascript iframe jquery

我正在研究有多个iframe的项目.主iframe具有页面,页面包含也具有页面内容的子iframe.

在子iframe中我有选项卡,每个选项卡都有从服务器动态加载的页面内容.

我正在尝试使用offset()来获取div元素的偏移顶部值.在页面上载时从屏幕顶部开始.它在使用'Reload iframe'重新加载子iframe时返回一些值,但在重新加载页面时返回'0'.

我正在附上我想要做的图像,请检查,如果我没有清楚地解释我上面的问题.

问题描述图像

我尝试了这段代码并将此代码放在$(document).ready(){}中,在重新加载特定的iframe时它的工作正常.但是在负载时返回0.

var $stored_selector = $('#displayMedsdetail');
var offset = $stored_selector.offset(), remaining_height;
console.log(offset.top);
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我找出为什么offset().顶部在重新加载页面时返回0?

Vad*_*ool 0

我希望您不要尝试从 iFrame 获取信息。因为 iFrame 通常不是为查看以外的其他目的而设计的。这意味着不对其进行编辑,也不抓取任何信息。因此据我所知,没有办法使用 JS 从 iFrame 内部获取任何信息。

至于为什么你无法读取你可能拥有的 iFrame 的顶部偏移量。那么这很可能与时机有关。$(document).ready()当您选择结合使用时,某些问题可能会得到解决setTimeout(),并且在许多情况下甚至 0 毫秒就足够了。由于没有代码可看,所以很难说问题出在哪里。

  • _“因为 iFrame 通常不是为查看之外的其他目的而设计的。这意味着不能编辑它,也不能抓取任何信息。因此据我所知,没有办法使用 JS 从 iFrame 内部抓取任何信息."_ 这是完全错误的。如果“iframe”源自与您的主机页面相同的域,则您可以_完全_访问其 DOM 及其中的所有内容。如果它来自不同的域,您将无权访问。决定这一点的并不是“iframe”,而是它来自的域。 (3认同)