2017-10-15 45 views
0

假設我有iframe中包含sample.html如何從iframe獲取所有html字符串?

<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta http-equiv="X-UA-Compatible" content="ie=edge"> 
    <title>Document</title> 
    <link rel="import" href="sample.html"> 
</head> 

<body> 
    <p>top</p> 
    <iframe src="sample.html" frameborder="0" id="myframe"></iframe> 
    <p>bottom</p> 
    <textarea cols="30" rows="10"></textarea> 
</body> 

</html> 

我想獲得的所有內容包括<!DOCTYPE html> ...</html>。我試圖尋找角落找尋網絡,但我發現只有使用

var cont = document.getElementById('myframe').contentWindow.document; 
console.log(cont.body); 

我不想使用AJAX來獲取內容文件得到的主體內容。 如何從iframe獲取全部內容包括html標記?

回答

2

嘗試訪問cont.documentElement.innerHTML以獲取<html>標記的內容。

如果您還想要<html>標記,請使用cont.documentElement.outerHTML

要獲取文檔類型信息,請嘗試使用cont.doctype

var cont = document.getElementById('myframe').contentWindow.document; 
console.log(cont.documentElement.outerHTML, cont.doctype); 

你也可以使用XMLSerializer如果在瀏覽器的支持:

console.log(new XMLSerializer().serializeToString(cont));

+0

'的console.log(新的XMLSerializer() .serializeToString(cont));'解決我的問題。謝謝。 –

1

試試這個:

使用document.doctype獲取文檔的doctype

使用document.getElementsByTagName("*");得到大部分HTML的

https://jsfiddle.net/4hhf6nLm/