我想要做的是动态地iframe一些页面,所以当用户点击某个按钮时,某个页面(动态按钮生成的链接)会在iframe中打开。我想跳过那些不允许其内容被iframed的网址。
有没有办法检查URL是否将自己限制为iframed?
答案 0 :(得分:2)
对网址发出AJAX
请求,检查x-frame-options
标头。如果是DENY
或SAMEORIGIN
,那么您可能无法展示它。
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内。