javascript - 如果网站试图逃离框架,如何停止加载网站

标签 javascript jquery iframe framebusting

所以我知道有很多网站试图打破框架(帧破坏),然后有整个循环的“破坏框架破坏者”和“破坏框架破坏者”等。有没有办法预测网站是否会尝试突破您的框架?我希望我的程序尝试将站点加载到框架中,如果它尝试突破,则放弃尝试并停止加载框架。这是我之前尝试过的:

<iframe id="framed_source" src = "<%= @excerpt.url %>"></iframe>
<script type="text/javascript">
    if ( top === self )
    {
        $(".framed_source").remove();
    }
</script>

不幸的是,即使删除了 iframe,它仍然会重定向到原始站点?我怎样才能删除框架并完全放弃加载其网站的尝试,这样就不会发生重定向?

最佳答案

这是一个例子

<div id="pcontent"></div> <!-- Page 1 html -->
<script>
   setInterval(function(){//set interval
       if(!$('iframe').contents().find('#icontent').length)//check if div exists on iframe
          window.location.href= 'blbla.com';//if so redirect
    },100);//end interval
</script>
<iframe> <!-- This is your iframe below is the javascript code should go to page2.html -->
   <div id="icontent"></div>
   <script>
     setInterval(function(){
      if(!top.getElementById('pcontent').length)//check if the div exists on top most window
      window.location.href= 'blbla.com';
     },100);
   </script>
</iframe>

现在:iframe 内部是 iframe 应该有的内容...[仅用于说明]

您还可以检查其他内容,例如内容是否没有宽度、高度、内部文本和 html 不匹配等...

关于javascript - 如果网站试图逃离框架,如何停止加载网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6573732/

相关文章:

jquery - &lt;iframe src ="reallylongpage.html#bottom"/> 不起作用

javascript - 如何将ajax响应加载到iframe而不是div?

javascript - Angular $http.get 请求在 Auth0 登录后失败

javascript - View 中 Controller 的 Angular 重用函数值

javascript - CSS Javascript 在用户点击时显示下一个/上一个 Div 的内容

jquery - 使用 jquery 填充多选框

JavaScript 范围转换 - 帮助我理解

javascript - 使用jquery将文本括在span标签中的括号中?

javascript - 如何针对新选项卡调用方法(父窗口告诉子窗口调用方法)?

javascript - 在 framework7 包装器中加载外部页面