2013-01-10 31 views
-1

我正在做一些工作,需要我在嵌入式iframe中構建html。有點像jsbin一樣。Html - 如何實際使用本地iframe? (什麼都沒有顯示)

但是我很難過我的第一次秒殺。

當我把它放在iframe中時,我的html怎麼沒有被渲染?

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=utf-8 /> 
<title>JS Bin</title> 
</head> 
<body> 
    <iframe> 
    <html> 
     <head><meta charset=utf-8 /></head> 
     <body> 
     <h1>Big Header</h1> 
     </body> 
    </html> 
    </iframe> 
</body> 
</html> 

Here's my jsbin.

此外,當我試圖繪製與D3的iframe裏面的一些svgs他們出來尋找一切怪異和不結垢。在打開開發工具並將svg文本編輯爲html後,我發現即使在任何地方添加一個無意義的空間,都會使其重繪並正確呈現。因此,如果有人可以告訴我任何我可以閱讀的資源,獎勵積分清楚地表明iframe不像我想象的那樣工作。

回答

1

iframes需要指向要加載的頁面。你不要把html之間的iframe標籤。如果您在iframe標籤之間插入任何東西 - 在客戶端使用的瀏覽器不支持該標籤的情況下,這是您要顯示的文本。你應該在自己的本地html頁面上面創建html,並指向上面的iframe src屬性指向該網頁。

+0

這根本不是真的。看看jsbin輸出窗格,他們沒有src,而當POST做一次保存時,他們會在客戶端上建立你的html。 –

+0

他們可能使用javascript來翻譯src屬性,因爲頁面加載後人們無法弄清楚文件的位置。我以前看過廣告服務。 –

+0

如果這是真的,您將能夠在chrome的網絡選項卡中看到網絡活動。他們的源代碼在github上打開,雖然我不太明白髮生了什麼,但它不是GET請求。他們實際上抓住了iframe的contentDocument屬性,似乎在修改它。 –

0

的研究經過一天:

像邁克說,一個iframe中的HTML是的情況下的瀏覽器並不支援iframe,否則不會出現。但是,在iframe中即時構建文檔並且不需要服務器端查詢是絕對有可能的。要做到這一點,你必須使用JavaScript來構建文檔。你可以得到它的引用,並寫HTML像這樣:

var iframe = document.getElementsByTagName('iframe')[0]; 
    ,doc = iframe.contentDocument || iframe.contentWindow.document 
    ; 
doc.open(); 
doc.write('<p>Some html</p>'); 
do.close(); 

注意,如雷米提到here文檔必須寫入前被打開,後關閉。

相關問題