2012-04-01 9 views

Odpowiedz

48

Jest to możliwe do zrobienia bez iframe konkretnie. jQuery jest wykorzystywany, ponieważ jest wymieniony w tytule.

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

Zauważ, że to nie zadziała, jeśli zablokujesz to w nagłówku [X-Frame-Options] nagłówka strony zewnętrznej (https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options). –

2

Nie można wstrzyknąć zawartość z innej strony (domeny) za pomocą AJAX. Powodem, dla którego iFrame nadaje się do tego typu rzeczy, jest możliwość określenia źródła pochodzącego z innej domeny.

35

Spójrz na jQuery's .load() funkcji:

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

Jednak ta działa tylko w tej samej domenie pliku JS.

+5

Ten jQuery .load() metoda jest lepsza niż .get jQuery() proponowanej w innych odpowiedzi, ponieważ pozwala załadować konkretny element z zewnętrznego URL DOM (na przykład tylko zawartość div, a nie całą stronę). W ten sposób unikniesz podwójnego znacznika jak dwa "body", a więc: $ ('# result'). Load ('ajax/test.html #container'); – tomasofen

8

Z jQuery jest to możliwe, jednak nie używając ajax.

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

A następnie umieść onload="LoadPage()" w tagu body.

Chociaż jeśli się tę drogę, to wersja php może być lepiej:

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

Nie sądzisz, że '$ .get' to Ajax? – xyz

+0

Nie, nie jest to możliwe w ajax, ale jest możliwe tylko w jQuery. a .get() można wywołać po załadowaniu strony, aby zrzucić stronę do określonego div – Njdart

+1

Twój przykład to użycie Ajax w jQuery. Myślę, że próbujesz wyjaśnić coś innego niż twój przykład. – xyz

Powiązane problemy