2012-04-22 13 views
13

Estoy usando el siguiente código simple de iFrame para cargar Yahoo pero no se carga de todos modos. en Chrome Inspector, primero veo el estado de la URL como 301 y luego cancelo. ¿Alguna idea de por qué está sucediendo?iFrame no cargando URL

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

Es posible que desee considerar la posibilidad de marcar una respuesta como correcta. – iambriansreed

Respuesta

23

Es probable que obtener un mensaje de error en el registro que dice algo como esto:

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

Para responder a su pregunta:

Yahoo está haciendo esto para avoid clickjacking attacks, by ensuring that their content is not embedded into other sites.

Para obtener más información, lea esto: https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header

+0

estoy usando Chrome – Volatil3

+2

Yo también. Así que ese es exactamente el mensaje de error que verías. – iambriansreed

+0

@ Volatil3 Actualizado. – iambriansreed

4

También es muy fácil pedirle al sitio que no cargue si está en un iframe con javascript simple. Por ejemplo, twitter hace esto

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

No vi un error de consola aquí, así que supongo que este es el caso aquí.

Yahoo! JavaScript está ofuscado, pero puede ver que definitivamente están eliminando algo en este fragmento. (Código tomada desde el sitio web yahoo)

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

@downvoter: ¿podría explicar por qué? – naveen

+0

Creo que su respuesta no es realmente responder a la pregunta. –

+0

Indirectamente respondió, siempre que el motivo fue el mismo. Antes de su respuesta, pensaba que había algún problema por mi parte. También aprendí cómo guardar mi lado para cualquier incrustación. Gracias @naveen – Volatil3

3

realidad Yahoo, Google y dicho sitio web no permite iframes para su sitio. Ellos bloquea los marcos flotantes para mostrar su página web

2

Si el sitio aloja la página web hace que el uso de una conexión segura HTTPS, algunos navegadores (Chrome para asegurarse), será necesario que todos los recursos de la red utilizan HTTPS también.

La dirección URL en el marco flotante actual está utilizando HTTP src="http://yahoo.com"

Trate de usar HTTPS: src="https://yahoo.com"

+0

¡Esta es la única respuesta correcta! En mi caso. ¡Gracias! – domih