2012-04-22 98 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