代码之家  ›  专栏  ›  技术社区  ›  Anthony

iframe页面能告诉他们什么时候被iframed吗?

  •  7
  • Anthony  · 技术社区  · 15 年前

    所以我知道如果我将iframe包含到一个不在同一域中的页面,我就不能通过浏览器策略访问该iframe的dom,但是iframe中的页面是否可以进行任何类型的父文档访问?

    具体来说,我必须根据这个问题提出一些想法:

    1. 如果嵌入的页面可以告诉您它不是父窗口,则可以使任何一个不可iframe的站点变为可iframe的站点,以便当页面检测到它被iframed时,它将变为“离开”页面,或者您可以使它只可iframe(类似于仅用于包含的页面的服务器端脚本),以便当它不是Ramed会得到一个“离开”页面。

    2. 如果iframed页面具有父窗口不具有的某些自由度,则可以请求父窗口的样式表并将其设置为其在样式表上,从而使站点与父文档集成得更多。(当然,我可以让我的样式表更多地与iframed站点相关,因为我知道它会做到这一点,但我不认为这是一个问题)。

    有人知道吗?

    4 回复  |  直到 15 年前
        1
  •  11
  •   Eric Petroelje    15 年前

    <script type="text/javascript">
    if (self != top)
    {
      // Framed!
    }
    </script>
    

        2
  •  4
  •   Mike Weller    15 年前

    this Coding Horror article

    if (parent.frames.length > 0) {
        top.location.replace(document.location);
    }
    

       var prevent_bust = 0  
       window.onbeforeunload = function() { prevent_bust++ }  
       setInterval(function() {  
         if (prevent_bust > 0) {  
           prevent_bust -= 2  
           window.top.location = 'http://server-which-responds-with-204.com'  
         }  
       }, 1)  
    
        3
  •  1
  •   Rutesh Makhijani    15 年前

    if(top.location.href != self.location){
    //do redirection or display message
    }
    

        4
  •  0
  •   Alfero Chingono    15 年前

    <script type="text/javascript">
    if (window.parent != null)
    {
      // Framed!
    }
    </script>