我正在处理包含多个iframe的项目。主iframe有页面,页面包含也有页面内容的子iframe。
在子iframe中我有选项卡,每个选项卡都有从服务器动态加载的页面内容。
我尝试使用offset()来获取div元素的偏移顶部值。页面上传时从屏幕顶部开始。使用'重新加载iframe'重新加载子iframe时会返回一些值,但它会返回' 0' 0重新加载页面时。
我附上了我想要做的图像,如果我没有清楚地解释上面的问题,请检查。
我尝试了这段代码并将此代码放在$(document).ready(){}中,重新加载特定的iframe时,它的工作正常。但是在负载时返回0。
var $stored_selector = $('#displayMedsdetail');
var offset = $stored_selector.offset(), remaining_height;
console.log(offset.top);
任何人都可以帮我找出为什么offset()。顶部在重新加载页面时返回0?
答案 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就足够了。由于没有代码可以查看,因此很难说出问题所在。