简体   繁体   中英

window.parent is not undefined?

I have a single page. with no Iframes :

在此输入图像描述

And I need to check if the page is in Iframe , so I did this :

if (!window.parent) {...not in iframe...}

But it seems that window.parent is never undefined and always reference to the window (self===parent) .

Why is that ?

the window has no(!) parent. so why it is defined ?

NB

  • I know that window.window.w.... is the same for a reason. but im talking about parent(!)

  • I know I can check this condition :

if (window.self===window.parent)...

But still my question remains.

From MDN :

If a window does not have a parent, its parent property is a reference to itself

That's just the way it is.

In their example, they provide a way of achieving your requirement (slightly different angle than your solution):

if (window.parent != window.top) {
  // we're deeper than one down
}

More References:

W3

The value of the parent attribute of a Window object MUST be the parent document's Window object or the document's Window object if there is no parent document

You can compare document.referrer with window.location.href

JSFiddle

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM