有没有聪明的方法让Javascript知道它在iFrame中被执行?

时间:2010-05-27 13:11:16

标签: javascript iframe

如果页面是通过iFrame嵌入的,我需要脚本动态更改其运行方式。

该脚本将在<script..标记的iFrame源代码中调用,并且不会内联javascript。

提前谢谢你!

更新:David提供的此答案适用于Firefox和Chrome,但在IE8中不起作用,对此有任何帮助表示赞赏:)

if (window !== top) {
  alert('im in an frame');
}

更新2:显然这是duplicate question,正确答案是:

if (top === self) { alert('parent'); } else { alert('iframe'); }

信用转到Greg

3 个答案:

答案 0 :(得分:3)

if (window != top) {
  // In a frame of some kind
}

答案 1 :(得分:0)

对于同一个窗口对象的两个引用,即使在顶级窗口中,如果(window === top)返回false,IE也不会为等价运算符(===)返回true。

但是,如果对象是顶部窗口,则更简单的相等运算符if(window == top)在所有浏览器中返回true,如果它是窗口中包含的iframe则返回false。

答案 2 :(得分:0)

if (top === self) { alert('parent'); } else { alert('iframe'); }  

工作正常!积分转到Greg