2017-04-03 115 views
2

我有一个页面,有时会加载到iframe中,有时只是自己加载,具体取决于与此问题无关的某些参数。在这两种情况下,我都想使用$(parent.window).height()来获得视口的高度。这似乎在两种情况下返回了正确的数字(进出iframe),但我只是想检查是否有任何潜在的陷阱使用$(parent.window).height()不在iframe中的页面 - 即页面在技术上没有父项。

否则,我可以构造一个if..else分别与$(parent.window).height()$(window).height()进出一个iframe,但是有必要吗?我可以只用$(parent.window).height()来涵盖两种情况吗?

回答

1

docs

如果一个窗口没有父,其parent属性是对自身的引用。

所以你很好,window.parent将是一个对父母的引用,如果存在,如果不存在,它是对当前窗口的引用。
没有必要检查窗口是否实际上有父级使用window.parent属性,只要它无关紧要,它可能是返回的当前窗口。

0

您可以使用window.top来指向最上面的窗口。无论页面是否正常打开,或者在框架中,或者在嵌套框架中,它都会引用顶部窗口。

+0

Michal,谢谢你。在我的情况下,只有一个级别的iframe,所以父母应该这样做,但是如果我需要更深入地嵌套,你的建议是有帮助的。 –