2012-04-01 15 views

Antwort

48

Dies ist möglich, ohne iframe speziell zu tun. jQuery wird verwendet, da es im Titel erwähnt wird.

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

Beachten Sie, dass dies nicht funktioniert, wenn die [X-Frame-Options-Kopfzeile] der entfernten Seite (https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options) es nicht erlaubt. –

2

Sie keine Inhalte von einer anderen Website (Domain) mit AJAX injizieren können. Der Grund, warum ein iFrame für diese Art von Dingen geeignet ist, liegt darin, dass Sie die Quelle aus einer anderen Domäne auswählen können.

35

einen Blick in jQuery's .load() Funktion übernehmen:

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

Dies ist jedoch nur auf der gleichen Domäne der JS-Datei funktioniert.

+5

Dieses jQuery .load() Methode ist besser als die jQuery .get() in anderen Antworten vorgeschlagen, weil es Ihnen ein bestimmtes Element aus dem externen URL DOM (zum Beispiel laden kann, nur den Inhalt eines div und nicht die ganze Seite). Auf diese Weise vermeiden Sie doppeltes Markup wie zwei "body" und so: $ ('# result'). Load ('ajax/test.html #container'); – tomasofen

8

Mit jQuery ist es möglich, jedoch nicht mit Ajax.

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

Und dann Ort onload="LoadPage()" in den Body-Tag.

Obwohl, wenn Sie diesen Weg zu folgen, könnte eine PHP-Version besser sein:

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

Denkst du nicht, $ .get' ist Ajax? – xyz

+0

Nein, das ist in Ajax nicht möglich, aber es ist nur in jQuery möglich. Ein $ .get() kann aufgerufen werden, sobald die Seite geladen wurde, um die Seite in das angegebene div zu laden. – Njdart

+1

Ihr Beispiel verwendet Ajax in jQuery. Ich denke, du versuchst etwas anderes zu erklären als dein Beispiel. – xyz

Verwandte Themen