-2

要获取我们所在页面的源代码,我们可以使用 JavaScript:

var pageSource = document.documentElement.outerHTML;

或者

var pageSource = new XMLSerializer().serializeToString(document);
  • 第一个不会将标签之前的html代码返回为<!DOCTYPE html>.
  • 这两种方法都将删除文档开头和结尾的一些换行符。

那么有什么替代方法可以返回与编写的源代码相同的源代码,而无需任何 HTTP 调用?

4

1 回答 1

1

你不能。加载网页后,浏览器不会保留原始源代码——outerHTML两者XMLSerializer都试图从 DOM 树中重构 HTML(或 XML)。正如您所发现的,这是一个不精确的过程,原因在于格式化怪癖(例如,换行符)、错误恢复、根本不存在于 DOM 中的元素(例如,注释和 NOSCRIPT 标签)以及执行的 DOM 操作通过在网站上运行的 Javascript。

于 2013-11-02T18:16:45.570 回答