2010-11-14 31 views
1

我试图找到一个可靠的解决方案,以确定我的网页是否在使用javascript的外部网站上的iframe中加载。如何理解页面是否使用javascript加载为iframe(外部网站)?

如果iframe src位于同一个域中,它很容易:可以使用if(window.frameElement)或if(window.location!== window.parent.location),但如果iframe src不在同一个域中所有现代浏览器在访问父级时甚至将其与null进行比较时都会引发异常。

我完全失去了。

回答

2

您可能感兴趣的编码恐怖条目:We Done Been Framed。就这个话题提供有趣的技术讨论,包括解决方案和框架破坏。

+0

不错的文章。该文章中OP可能想要尝试的代码是:if(parent.frames.length> 0)top.location.replace(document.location); }虽然文章的要点是,不可能从JavaScript获得100%的胸围帧,并且最好的做法是从服务器端代码通知用户帧。 – mjhm 2010-11-14 23:01:43

+1

所以...你说的是我的回答是提供更多的方式,而不是提问者;) – Matt 2010-11-14 23:11:28

0

您可以在try-catch语句中包装您的验证(window.location!== window.parent.location/window.frameElement),您可以使用它来自己处理异常。

+0

那么它不起作用 - 至少在Firefox 3.6.12。代码不会抛出异常。 – sha1dy 2010-11-14 21:56:58

0

你为什么不尝试一个函数以下

VAR元素= window.parent.document 如果(元素)的回报“是在父窗口中的”其他“是不是在一个父窗口”;

相关问题