Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取我';我在吗?_Javascript - Fatal编程技术网

Javascript 如何获取我';我在吗?

Javascript 如何获取我';我在吗?,javascript,Javascript,要获取我们所处页面的源代码,使用JavaScript我们可以使用: var pageSource = document.documentElement.outerHTML; 或 第一个将不会将html标记前面的代码返回为 这两种方法都将删除文档开头和结尾的一些换行符 因此,有没有其他方法可以返回与编写的源代码相同的源代码,而不需要任何HTTP调用?您不能。加载网页后,浏览器不会保留原始源代码-outerHTML和XMLSerializer都试图从DOM树重建HTML(或XML)。正如您所发

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

var pageSource = document.documentElement.outerHTML;

  • 第一个将不会将
    html
    标记前面的代码返回为
  • 这两种方法都将删除文档开头和结尾的一些换行符

因此,有没有其他方法可以返回与编写的源代码相同的源代码,而不需要任何HTTP调用?

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

实际上都可以恢复源代码的原样,包括注释和所有内容,我猜DOM树的内容也是这些数据在XMLSerializer的情况下,对于outerHTML,innerHTML的一部分是原样的,但是从DOM树生成的用于获取outerHTML的附加语法看起来(很糟糕)。编码器有一个明确、合理的问题,已经对此进行了明确的研究,并发布了他们已经尝试过的代码。为什么这会被否决?^这就是互联网。。。他们投了4张反对票,我想你应该把问题投上去。。。谢谢你,克里斯^^
var pageSource = new XMLSerializer().serializeToString(document);