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

时间:2011-07-12 11:06:40

标签: html http iframe

我正在尝试开发一个页面,我可以一次显示超过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>

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

6 个答案:

答案 0 :(得分:20)

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

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

答案 1 :(得分:5)

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

我能想到的唯一方法是让您检查网站加载的是搜索iframe以查找目标网站上存在的特定元素(例如Facebook上具有特定ID或类的div #39;的头版)。原因是不同的网站可以处理嵌入到iframe中的不同,有些可能会显示一些内容,有些可能无法显示等等,唯一的方法是检查真实元素。

答案 2 :(得分:3)

facebook不希望您在框架中加载主网站

<iframe src="http://m.facebook.com/" width="200" height="300" scrolling="auto" frameborder=0></iframe>

width =“200”height =“300”可以相应调整。

这样做是在框架而不是主站点加载移动版facebook。

Reference

答案 3 :(得分:0)

你将无法做到这一点,你只能像按钮那样使用iframe ...而不是整个网站。

答案 4 :(得分:0)

您可以使用对象标签:
<object data = "https://facebook.com"></object>

答案 5 :(得分:-2)

使用http://devilishdb.koding.com/proxy?facebook.com这是我制作的代理系统。我为谷歌测试了它的确有效。希望这有帮助