2012-04-01 16 views

Respuesta

48

Esto es posible hacerlo sin un iframe específicamente. jQuery se utiliza ya que se menciona en el título.

<!doctype html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Load remote content into object element</title> 
    </head> 
    <body> 
    <div id="siteloader"></div>​ 
    <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> 
    <script> 
     $("#siteloader").html('<object data="http://tired.com/">'); 
    </script> 
    </body> 
</html> 
+5

Tenga en cuenta que esto no funcionará si la página remota [encabezado X-Frame-Options] (https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options) no lo permite. –

2

No se puede inyectar contenido de otro sitio (dominio) usando AJAX. La razón por la cual un iFrame es adecuado para este tipo de cosas es que puede especificar el origen de otro dominio.

35

echar un vistazo a jQuery's .load() función:

<script> 
    $(function(){ 
     $('#siteloader').load('http://www.somesitehere.com'); 
    }); 
</script> 

Sin embargo, esto sólo funciona en el mismo dominio del archivo JS.

+5

Este .load jQuery() método es mejor que el .get jQuery() propuesto en otras respuestas, ya que le permite cargar un elemento específico de la DOM URL externa (por ejemplo, sólo el contenido de una div y no la página completa). De esta forma, evitará tener marcas duplicadas como dos "cuerpo" y así: $ ('# resultado'). Load ('ajax/test.html #container'); – tomasofen

8

Con jQuery, es posible, sin embargo, no utilizar ajax.

function LoadPage(){ 
    $.get('http://a_site.com/a_page.html', function(data) { 
    $('#siteloader').html(data); 
    }); 
} 

y luego colocar onload="LoadPage()" en el cuerpo de la etiqueta.

Aunque si sigue esta ruta, una versión php podría ser mejor:

echo htmlspecialchars(file_get_contents("some URL")); 
+24

¿No crees que '$ .get' es Ajax? – xyz

+0

No, esto no es posible en ajax, pero es posible solo en jQuery. Se puede llamar a $ .get() una vez que la página se haya cargado para volcar la página en el div especificado. – Njdart

+1

Su ejemplo está usando Ajax en jQuery. Creo que estás tratando de explicar algo diferente a tu ejemplo. – xyz

Cuestiones relacionadas