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

时间:2018-01-09 08:01:15

标签: javascript jquery html iframe

我正在处理包含多个iframe的项目。主iframe有页面,页面包含也有页面内容的子iframe。

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

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

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

Problem Description Image

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

var $stored_selector = $('#displayMedsdetail');
var offset = $stored_selector.offset(), remaining_height;
console.log(offset.top);

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

2 个答案:

答案 0 :(得分:3)

使用.contents()来获取iFrame的DOM。

以前用过的一些代码的例子和示例:

var content=$("iframe").contents().find('body').html();

您可以重写它以获取div元素及其偏移量。

答案 1 :(得分:0)

我希望你不要试图从iFrame中获取信息。因为iFrame通常不是为查看它而设计的。这意味着没有编辑它,也没有抓取任何信息。因此,据我所知,无法使用JS从iFrame中获取任何信息。

至于为什么你无法读取你可能拥有的iFrame的顶部偏移量。那最有可能与时间有关。当您选择$(document).ready()并结合setTimeout()时,可能会解决一些问题,在许多情况下甚至0 ms就足够了。由于没有代码可以查看,因此很难说出问题所在。