如何判断当前帧是否为父级?

时间:2010-06-28 19:10:02

标签: javascript html internet-explorer-6 frames

我正在一个框架环境中工作,并试图判断一些javascript代码执行的帧是否是顶部框架(包含其余部分的框架)。

到目前为止,我试图用

检查它
window.parent != null

但它总是返回false,就像在这个简单的例子中一样。

<html>
<head>
  <script>
    alert(parent == null);
  </script>
</head>

<body>
  <h1>OH YEAH!</h1>
</body>
</html>

有办法做到这一点吗?我不需要便携,现在我正在寻找IE6解决方案。

3 个答案:

答案 0 :(得分:7)

我发现这个pdf非常有用: http://seclab.stanford.edu/websec/framebusting/framebust.pdf

简而言之,如果这个问题太长而无法阅读,那么这就是他们最终提出的建议:

<style>
  html { display :none; }
</style>
<script>
if(self==top){
  document.documentElement.style.display = 'block';
}else{
top.location=self.location;
}
</script>

在这个pdf中你会发现许多其他方法可以做到这一点,每个都意味着'赞成和反对。 显然,在没有JavaScript的浏览器上,这种解决方案可能很痛苦;)

答案 1 :(得分:5)

self === top
如果在最顶层的框架集中执行,

应返回true,否则返回false。

答案 2 :(得分:1)

您可以查看是否top.frames.length == 0