【问题标题】:How to tell if current frame is parent?如何判断当前帧是否为父帧?
【发布时间】:2011-03-09 07:14:06
【问题描述】:

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

到目前为止,我一直在尝试检查它

window.parent != null

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

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

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

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

【问题讨论】:

    标签: javascript html internet-explorer-6 frames


    【解决方案1】:

    我发现这个 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 的浏览器上,这个解决方案可能会很痛苦;)

    【讨论】:

      【解决方案2】:
      self === top
      

      如果在最顶层的框架集中执行,应该返回 true,否则返回 false。

      【讨论】:

        【解决方案3】:

        你可以检查top.frames.length == 0

        【讨论】:

          猜你喜欢
          • 2020-02-21
          • 2011-09-13
          • 2021-08-09
          • 1970-01-01
          • 1970-01-01
          • 2010-10-05
          • 1970-01-01
          • 1970-01-01
          • 2021-07-09
          相关资源
          最近更新 更多