2011-11-27 119 views
9

所以我有这样的代码:iframe和外部网站

<iframe id="theFrame" src="http://localhost" style="width:100%;" frameborder="0"> 
</iframe> 

,并在iframe就好加载本地主机网站..

但后来当我的改变src到外部网站

<iframe id="theFrame" src="http://www.youtube.com" style="width:100%;" frameborder="0"> 
</iframe> 

该网站没有加载。

我做错了什么?我知道你可以在iframe中使用外部网站,因为谷歌图片搜索是这样做的...

我如何让外部网站在我的iframe中工作?

+0

您的HTML编码是正确的,但我相信您尝试访问Youtube的网络已阻止了youtube.com域。你能通过尝试一个不同的域来验证这一点吗? –

回答

-1

这似乎是一个只有youtube的问题; src =“http://www.mozilla.org”适用于我的代码。如果您想在iframe中显示youtube视频,他们可能会希望您在视频页面上使用“嵌入”选项?

+11

它不**是“只有youtube的问题”。 – JohnB

18

之所以外部网站,如:

  1. youtube.com
  2. google.com
  3. stackoverflow.com

不加载你的框架,是因为他们故意利用某种帧杀手

(用了jQuery)

<style> html{display:none;} </style> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     if(window.self == window.top) { 
      document.documentElement.style.display = 'block'; } 
     else { 
     window.top.location = window.self.location; } 
    }); 
</script> 

推荐阅读:

+1

有时* Framekiller *将框架中的引用网站弹出,但对于上述示例,这些* Framekiller *会设置为仅将框架内容留空。 – JohnB

1

您可能遇到了我遇到的相同问题,很可能是iframe被X框架选项阻止或被Deny属性阻止。例如,如果您从外部来源访问Facebook,它将返回谷歌浏览器中的DENY响应