【发布时间】:2017-03-08 04:55:11
【问题描述】:
我遇到了 Firefox 和 Safari 的问题,当尝试从 iframe 中的元素获取 .offset().top 值时,我在尝试获取该值时返回未定义。这在 Chrome、Edge 和 IE 中似乎可以正常工作,但在 Firefox 或 Safari 中却不行。
这是网址:
https://twlatl.github.io/styleguide/
当您在 Firefox 中单击导航时,您会在控制台中看到错误。
TypeError: this.$iframeContent.find(...).offset(...) is undefined
导致问题的块在这里:
gotoAnchor: function($elem) {
window.location.hash = '!' + $elem.attr('href').replace('#', '');
this.top = this.$iframeContent.find('h1' + $elem.attr('href')).offset().top;
this.$iframeContent.find('html, body').animate({
scrollTop: this.top
}, 800);
},
从元素中移除 .offset().top 会移除错误,但也会移除滚动到页面该部分的能力。
我尝试将此变量包装在 .on() 方法中以检查 iframe 是否首先完全加载,但这不起作用。
【问题讨论】:
-
您的
this.$iframeContent中没有任何内容 -
当然可以。将其记录到控制台或通过控制台通过 cruxStyle.$iframeContent 显示该对象以及显示的输出,显示来自加载的 iframe 内容的值。
-
查看我的更新答案
标签: javascript jquery iframe