2012-04-22 12 views
13

Sto usando il seguente semplice codice iFrame per caricare Yahoo ma non si sta caricando comunque. in Chrome Inspector vedo lo stato dell'URL come 301 e poi annullo. Qualche idea sul perché sta succedendo?iFrame non sta caricando l'URL

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

Si potrebbe prendere in considerazione la marcatura una risposta come corretta. – iambriansreed

risposta

23

Probabilmente un messaggio di errore nel registro che legge qualcosa di simile:

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

Per rispondere alla tua domanda:

Yahoo sta facendo questo per avoid clickjacking attacks, by ensuring that their content is not embedded into other sites.

Per maggiori informazioni leggere questo: https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header

+0

sto usando anche Chrome – Volatil3

+2

. Questo è esattamente il messaggio di errore che vedresti. – iambriansreed

+0

@ Volatil3 Aggiornato. – iambriansreed

4

È anche molto facile chiedere al sito di non caricare se ci si trova in un iframe con un semplice javascript. Ad esempio, Twitter fa questo

<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> 

Non ho visto un errore di console qui e quindi immagino che questo sia il caso qui.

Yahoo! JavaScript è offuscato ma puoi vedere che stanno rimuovendo definitivamente qualcosa in questo frammento. (Codice preso dal sito yahoo)

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

@downvoter: potresti spiegare perché? – naveen

+0

Penso che la tua risposta non risponda veramente alla domanda posta. –

+0

Indirettamente ha risposto, purché ce ne sia il motivo. Prima della sua risposta stavo pensando che c'è qualche problema alla mia fine. Ho anche imparato come salvare la mia parte per qualsiasi embedding.Thanks @naveen – Volatil3

3

realtà Yahoo, Google e tale sito non permette iframe al loro sito. Essi blocchi iframe per mostrare il loro sito web

2

Se il sito che ospita la pagina web impone l'utilizzo di una connessione sicura HTTPS, alcuni browser (Chrome di sicuro) sarà necessario che tutte le risorse di rete utilizzano HTTPS pure.

L'URL della tua iframe corrente sta usando HTTP src="http://yahoo.com"

Provate ad usare HTTPS: src="https://yahoo.com"

+0

Questa è l'unica risposta corretta! Nel mio caso. Grazie! – domih

Problemi correlati