我的Chrome扩展程序附带了一个弹出窗口,其中包含一个iframe
来加载网站。原则上,我可以设置iFrame的src
属性,它可以正常工作。但问题是许多网站不允许在框架内加载,导致Refused to display '...' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'
错误。足够公平!
经过一番浏览后,我发现PHP / cURL解决方案使用简单的脚本来使用cURL获取URL的内容并返回内容,然后将内容用作src
属性的值。这是脚本grabber.php
:
<?php
$ch = curl_init($_GET['url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$content = curl_exec($ch);
curl_close($ch);
echo $content;
?>
以下是我用来设置iFrame的src
属性的代码:
$('#myIFrame').attr('src', './grabber.php?url='+someURL);
同样,这项工作原则上,但对于相当静态/纯HTML网站来说,这只是相当不错的。一旦网站非常动态,我只会得到一些点点滴滴,即缺少内容和/或缺少样式表。简而言之,iFrame显示的内容通常几乎与网站的外观无关。
有没有机会让这个网站正常运行?