无法在iframe标记中显示某些网站

Nik*_*rma 14 html iframe http

我正在尝试开发一个页面,我可以一次显示3个以上的网站,如下所示:

<ul>
   <li>
      <iframe src="http://www.facebook.com/" /><p> iframe is not supported</p>
   </li>
   <li>
      <iframe src="http://www.yahoo.com/"></iframe>
   </li>
   <li>
      <iframe src="http://www.google.co.in"></iframe>
   </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

问题是它显示了yahoo.com和google.co.in,但没有在iframe中显示Facebook.

小智 24

您必须检查这些站点的HTTP响应标头X-Frame-Option.如果其值为"DENY或SAMEORIGIN",则您无法在iframe中加载这些网站.

DENY =没有人可以在iframe中加载网站.即使是相同的域页也无法加载.SAMEORIGIN =只有在同一个域中的网页才能在iframe中加载此网站.


zat*_*ata 6

由于某些网站已决定禁止将其嵌入到iframe中,因此纯HTML解决方案无法做任何事情。您可以创建一个服务器端脚本(用PHP),该脚本通过您的网络服务器提取目标站点,然后使用html等。

我能想到的唯一使您能够检查网站是否加载的方法是在iframe中搜索目标网站上存在的特定元素(例如,在Facebook的首页上具有特定ID或类的div) 。原因是不同的网站可以处理嵌入iframe的方式有所不同,而有些网站可能显示某些内容,有些网站可能不显示任何内容,等等,唯一可以确定的方法就是检查真实元素。


Sud*_*ha 3

Facebook 不希望您在框架中加载他们的主网站

<iframe src="http://m.facebook.com/" width="200" height="300" scrolling="auto" frameborder=0></iframe>
Run Code Online (Sandbox Code Playgroud)

width="200" height="300"可以相应调整。*

其作用是在框架中加载 Facebook 的移动版本而不是主站点。

参考