javascript - 如何检查网页是否可以在 iframe 中加载
问题描述
我正在尝试完成一项简单的任务。我希望能够检测一个网站是否可以加载到 iframe 中。如果无法加载,我想加载一个替代页面。
例如:
$website = google.com
$alternative = facebook.com
<iframe id="myframe" scrolling="no" src="<?php echo $website; ?>"></iframe>
我希望能够在加载之前检测网站(google.com)是否可以加载到 iframe 中。万一网站无法加载,我想加载替代方案(facebook.com)。
解决方案
下面是用于执行此类检查的示例 PHP 代码片段。
function isIframeDisabled($src){
try{
$headers = get_headers($src, 1);
$headers = array_change_key_case($headers, CASE_LOWER);
// Check Content-Security-Policy
if(isset($headers[strtolower('Content-Security-Policy')])){
return true;
}
// Check X-Frame-Options
if(isset($headers[strtolower('X-Frame-Options')] &&
(strtoupper($headers['X-Frame-Options']) == 'DENY' ||
strtoupper($headers['X-Frame-Options']) == 'SAMEORIGIN')
){
return true;
}
} catch (Exception $ex) {
// Ignore error
}
return false;
}
推荐阅读
- java - jdbcTemplate.queryForObject 给出 java.lang.NullPointerException
- reactjs - 如果没有选中任何复选框,则显示错误
- java - Java:如何获得接近给定 geohash 值的 geohash 值?
- discord.py - 嵌入反应系统中的问题。不和谐.py
- docker - Docker——特权不授予对某些库的访问权限
- javascript - 如何在 ReactJS 中设置 POST 文件上传参数
- css - 如何在 Summernote 编辑器中设置图像的默认原始大小?
- c++ - C ++中的虚拟方法定义是否需要参数名称?
- excel - 我需要使用 Macro 自动化 Excel 求解器。我在将“设置目标值”作为参考单元而不是硬代码时遇到问题
- cmake - 如何添加两个 add_custom_command 命令来分别执行