如何检查页面是否允许iframed?

时间:2014-08-20 17:56:40

标签: javascript iframe

我想要做的是动态地iframe一些页面,所以当用户点击某个按钮时,某个页面(动态按钮生成的链接)会在iframe中打开。我想跳过那些不允许其内容被iframed的网址。

有没有办法检查URL是否将自己限制为iframed?

3 个答案:

答案 0 :(得分:2)

对网址发出AJAX请求,检查x-frame-options标头。如果是DENYSAMEORIGIN,那么您可能无法展示它。

var xhr = $.get("http://somewhere.com");
xhr.always(function () {
  var frameOption = xhr.getResponseHeader("x-frame-options");
  if (frameOption == "DENY") {
    // etc.
  }
});

https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options

正如adeneo所指出的,对于许多具有跨域策略的网站而言,这可能会失败。您最好的选择是检查您自己后端的URL。

添加一条路由到您的服务器,该路由获取一个URL,获取它并检查它是否可以被框起。

答案 1 :(得分:0)

现在可以肯定地说,网址不是iframeable。

大多数这些URL都可以通过Ajax请求排除,并检查响应中的X-Frame-Options标头。 (无视“同源政策”)

其他网站使用脚本来检查它们是否是iframed,只能通过在隐藏的iframe中“测试”网站来排除这些网站并自行检查内容,当然这仅适用于您知道预期内容的情况,或者至少是一些关键要素 要阻止加载的iframe重定向您自己的网页,您可以使用IFrame-Sandbox或替代检查onbeforeunload

答案 2 :(得分:-2)

我不相信网页与iframe之间存在任何限制。我知道该页面可以通过javascript检查它是否在iframe内。