Detect iFrame embedding in Javascript

和自甴很熟 提交于 2019-11-26 13:00:51

Looking at frame length breaks down generally if page A itself has frames (I know this might not be the case for this specific instance). The more reliable and meaningful test would be:

if (window!=window.top) { /* I'm in a frame! */ }
Artem Barger

The predicate

(window.parent.frames.length > 0)

will tell you just what you want.

Mike Grace

As stated above the accepted solution doesn't work in IE8. Additionally, checking window.parent.frames.length can cause a cross-domain exception.

Instead I was able to achieve this with var isInIFrame = top.location != self.location - it works in IE8 and it doesn't cause a cross-domain violation as long as you don't attempt to read the contents of top.location.

Pink Duck

Use window.frameElement and check if it is not null and if its nodeName is "IFRAME".

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!