已经有同样的问题,第三方页面加载到我的iframe,其中一些被X框架选项阻止,未包含在HTML中。
注意:在CHROME,iPhone,Mozilla Android 4.4.2上工作,但不适用于FireFox。
如果你想要在新窗口打开这些页面,这是我如何管理它。 也许有用的东西为其他人寻找这种特殊场景的解决方案。 (get_headers)对大多数人来说工作正常,但是我发现很少有人没有将X-Frame-Options直接放入HTML头(自动包含),所以get_headers失败了,浏览器接收到了这个消息[帧选项:your_guest_url不允许跨越帧。]
我不得不在我的第一页上添加链接,让用户打开新窗口中的有问题的页面,通过点击它并创建inbetween页面与JavaScript,加载图标和的setTimeout()。
firstpage.php [与 'IFRAME' 和 'a' 低于 '的iframe']
<?php
foreach(get_headers("http://".$_REQUEST["address"]) as $v) {
if($v == "X-Frame-Options: SAMEORIGIN" || $v == "X-Frame-Options: DENY") {
header("location: http://".$_REQUEST["address"]);
die();
}
}
?>
<iframe id="iframe-id" src="secondpage.php"></iframe>
<a href=your_guest_url>go to your_guest_url</a>
<script language='javascript'>
setTimeout(function() {
document.getElementById('iframe-id').src = 'your_guest_url';
},500);
</script>
secondpage.php [装入的iframe]
<div class="loading-info">
<div id="loading-info" class="loading-info-content">
<i class="fa fa-3x fa-spinner fa-pulse"></i>
</div>
</div>
<script>
setTimeout(function() {
document.getElementById("loading-info").innerHTML = "<p'>USE LINK BELOW IFRAME</p>";
},5000);
</script>
页而不 '隐藏的' X- Frame-Options在500ms后通过javascript加载到iframe中,有问题的页面不会加载,所以secondpage停留在iframe中并执行javascript setTimeout();.