2012-04-22 82 views
13

我正在使用以下简单的iFrame代码来加载雅虎,但它不会加载。在Chrome Inspector中,我首先看到URL状态为301,然后取消。任何想法为什么会发生?iFrame not loading网址

<iframe name="iframe1" src="http://yahoo.com"></iframe> 
+0

你可能要考虑标志着一个答案是正确的。 – iambriansreed 2013-02-21 14:17:46

回答

23

你可能会得到在日志中的错误信息,上面写着这样的:

"Refused to display document because display forbidden by X-Frame-Options."

要回答你的问题:

雅虎这样做是为了avoid clickjacking attacks, by ensuring that their content is not embedded into other sites.

欲了解更多信息,请阅读: https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header

+0

我正在使用Chrome – Volatil3 2012-04-22 13:22:01

+2

我也是。所以这就是你会看到的错误信息。 – iambriansreed 2012-04-22 13:27:25

+0

@ Volatil3更新。 – iambriansreed 2012-04-22 13:28:53

4

它也很容易要求网站不加载,如果你在一个简单的JavaScript iframe。例如,微博确实这

<script type="text/javascript"> 
//<![CDATA[ 
    if (window.top !== window.self) { 
     document.write = ""; 
     window.top.location = window.self.location; 
     setTimeout(function() { 
      document.body.innerHTML = ''; 
     }, 1); 
     window.self.onload = function (evt) { 
      document.body.innerHTML = ''; 
     }; 
    } 
//]]> 
</script> 

我没有在这里看到一个控制台的错误,所以我想这是这里的情况。 Yahoo!代码:

Yahoo! JavaScript被混淆了,但你可以看到他们肯定会删除这个片段中的东西。 (从雅虎网站采取的代号)

if(self!==self.top){b=function(){if(g.readyState=="complete"){f.remove(g,e,b); 
+0

@downvoter:你能解释一下为什么吗? – naveen 2012-04-22 13:47:29

+0

我认为你的回答并不真正回答问题。 – 2012-04-22 14:17:20

+0

间接地他回答了,提供了它的原因。在他回答之前,我一直在想我的结局有些问题。我也学会了如何为任何嵌入保存我的身边。谢谢@naveen – Volatil3 2012-04-22 17:41:31

3

实际上雅虎,谷歌和这样的网站不允许的iframe他们的网站。他们块I帧,以显示自己的网站

2

如果托管该网页的网站强制使用安全HTTPS连接的,一些浏览器(Chrome的肯定)会要求所有的网络资源使用HTTPS为好。

在当前的IFRAME URL是使用HTTP src="http://yahoo.com"

尝试使用HTTPS:src="https://yahoo.com"

+0

这是唯一正确答案!就我而言。谢谢! – domih 2017-01-11 19:15:46