2017-10-15 46 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/