2012-05-22 151 views
0

我對iFrame的理解是,裏面的內容正是src中包含的內容。我已經看到許多像Facebook等小部件使用iFrame。有人可以解釋iFrames嗎?

當我嘗試使用iFrame時,我有一個HTML文件,裏面只有一個div和一些內容,沒有頭部,正文等。只是HTML中的內容。但iFrame總是加載整個頁面,並最終給我一個iFrame內的遞歸iFrame。

我不明白這是怎麼回事,因爲我在iFrame中引用的HTML文件只是內容而已。我不包括頁眉,頁腳,但所有顯示無論如何。

我見過人們在討論將iFrame滾動到某個部分,甚至在src中使用div的id並設置滾動= no。這可以工作,但我的iFrame內容將根據用戶輸入重新加載,一旦它重新加載,它將返回到iFrame內頁面的左上角部分。

這沒有任何意義。也許這應該是一個小部件或什麼?

編輯爲SD表現出一些格式化代碼: @Surreal夢

這是奇怪的事情。我使用的是web2py,所以它可能是後端固有的東西造成的。 html文件實際上是一個div封裝器,裏面有一些元素。但我認爲web2py正在添加標題,即使我沒有擴展任何佈局。我最終通過引用在另一個網址上異地保存的相同HTML文件來使它正常工作。它顯示正確,沒有web2py干擾html結構。

什麼之前發生的事情,我有這樣的代碼:

{{extend 'layout.html'}} 
<div class="wrapper"> 
<page content> 
<aside id="iFrame wrapper"> 
<iframe src="/rates.html"></iframe> 
</aside> 
</div> 

而這裏面的佈局,你把所有的頁眉,頁腳等國內外發生了什麼事是web2py的頁面的基本結構它會生成整個頁面,以及您到達iFrame的位置,然後再次在該iFrame內生成頁面,然後再次生成iFrame,這將繼續無限地在每個iFrame的頁面內呈現頁面。

+1

後的你外html和內部HTML兩者的代碼。 – Joe

+0

您在iframe中加載的內容應該是完整的頁面,因此請包含html,head和body標籤。它*不會*添加任何額外的東西,所以我很好奇看到你的代碼來確定爲什麼你有額外的iframe。 –

回答

2

iframe將始終加載整個網頁,並在您的iframe的src屬性中引用。即使你的文件只包含一個div,我相信瀏覽器認爲它是一個完整的頁面,並自動添加一個頭部和一個正文。

「我看到那裏的人都在談論滾動的iFrame到某款」 =>右,一次是在iframe中加載頁面時,您可以使用JavaScript訪問和操作DOM它:

var myIframe = parent.document.getElementById("myIframe"); 
var window = myIframe.contentWindow; 
0

Iframe總是加載整個頁面,如果你想添加或刪除網頁中的任何內容,你可以使用JQuery。即使你的URL包含Iframe作爲一個完整的網頁的唯一div 因此,你應該首先在iframe中找到body元素,然後附加所需的標記。

的test.html

<div>hello World</div> 

other.html

<html> 
<head></head> 
<body> 
<iframe src="test.html"></iframe> 
</body> 
<script> 
$(document).ready(function() { 
    $('#prev').contents().find('body').html('<div> blah </div>'); 
}); 
<script> 
</html>