2012-04-01 183 views

回答

48

這是可能沒有iframe專門做。由於標題中提到了jQuery,因此可以使用jQuery。

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

注意,如果遠程頁面的[X-Frame-Options標題](https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options)不允許使用它,則這將不起作用。 – 2014-05-24 20:37:47

2

您無法使用AJAX從其他網站(域)注入內容。 iFrame適用於這些類型的事情的原因是,您可以將來源指定爲來自其他域。

35

看看到jQuery's .load()功能:

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

然而,這僅適用於JS文件的同一個域。

+5

此jQuery .load()方法比其他響應中提出的jQuery .get()更好,因爲它允許您從外部URL DOM中加載特定項目(例如,僅包含一個股利,而不是整頁)。這樣你就可以避免像兩個「body」一樣重複標記,所以:$('#result')。load('ajax/test.html #container'); – tomasofen 2013-04-01 07:28:50

8

使用jQuery,有可能,但不能使用ajax。

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

,然後將body標籤onload="LoadPage()"

但如果你遵循這條路線,一個PHP版本可能會更好:

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

你不覺得'$ .get'是Ajax嗎? – xyz 2012-04-01 11:01:45

+0

不,這在ajax中是不可能的,但僅在jQuery中才有可能。一旦頁面已經加載將頁面轉儲到指定的div中,$ .get()就可以被調用。 – Njdart 2012-04-01 11:04:29

+1

您的示例在jQuery中使用Ajax。我認爲你正試圖解釋一些與你的例子不同的東西。 – xyz 2012-04-01 11:06:21