如何从页面获取HTML源代码?

mck*_*k89 20 html javascript

有没有办法使用JavaScript访问页面HTML源代码?

我知道我可以使用,document.body.innerHTML但它只包含正文中的代码.我想获取所有页面源代码,包括头部和身体标签及其内容,如果可能的话,还有html标签和doctype.可能吗?

Eld*_*rov 30

使用

document.documentElement.outerHTML
Run Code Online (Sandbox Code Playgroud)

要么

document.documentElement.innerHTML
Run Code Online (Sandbox Code Playgroud)

  • @ mck89:没有浏览器,但IE会有`outerHTML`. (7认同)
  • 请注意,您使用Firefox /大多数浏览器获得的来源是您提供的"真实"来源.在IE中,您将获得页面的"实时"HTML,包括用户对表单所做的任何更改,任何新的DOM内容等.在IE中,它也将是IE在请求.innerHTML时提供的混合大小写无效标记汤.元素. (5认同)
  • 这是DOM的当前状态而不是源代码. (5认同)
  • 如果其他人仍在调查此事,情况已有所改变。@Crescent Fresh 2 年前是正确的,但是最新版本的 Chrome 和 Safari 也实现了 HTMLELement.outerHTML - 尽管在撰写本文时,Firefox 还没有。 (2认同)
  • @LiamNewmarch在您发表评论2年后,这是在初始发布后的2年,现在似乎Firefox也实现了outerHTML.:) (2认同)

Pau*_* S. 14

这可以使用XMLSerializer在单行中完成.

var generatedSource = new XMLSerializer().serializeToString(document);
Run Code Online (Sandbox Code Playgroud)

哪个给String

<!DOCTYPE html><html><head>

<title>html - javascript page source code - Stack Overflow</title>
...
Run Code Online (Sandbox Code Playgroud)


Pau*_*xon 8

一种方法是使用XMLHttpRequest重新请求页面,然后您将从Web服务器逐字获取整个页面.