使用 $(parent.window).height()

Posted

技术标签:

【中文标题】使用 $(parent.window).height()【英文标题】:Use of $(parent.window).height() 【发布时间】:2017-08-28 21:05:59 【问题描述】:

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

否则我可以用$(parent.window).height()$(window).height() 分别构造一个if..else 用于iframe 的输入和输出,但有必要吗?我可以只使用$(parent.window).height() 来涵盖这两种情况吗?

【问题讨论】:

【参考方案1】:

docs 这么说

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

所以你很好,window.parent 将是对父级的引用,如果存在,则它是对当前窗口的引用。 不需要条件来检查窗口是否真的有一个父窗口来使用window.parent 属性,只要它可能是返回的当前窗口并不重要。

【讨论】:

【参考方案2】:

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

【讨论】:

迈克尔,谢谢。就我而言,只有一级 iframe,所以父母应该这样做,但是如果我需要更深入地嵌套,您的建议会有所帮助。

以上是关于使用 $(parent.window).height()的主要内容,如果未能解决你的问题,请参考以下文章

window.parent 判断是否是被嵌入iframe里面

window.open和window.parent的区别

window.parent ,window.top,window.self 详解

window.parent window.top及window.self 详解

Js中的window.parent ,window.top,window.self 了解

脏表单 - 如何忽略 parent.window.location.href 上弹出的脏表单