使用JavaScript和DOM获取当前页面的源代码

3

如何使用JavaScriptDOM获取当前页面的源代码?需要使用AJAX吗?


1
“a”页面是指当前页面,还是远程页面? - ldiqual
哪个页面的源代码?我们需要更多信息,队长! - epascarello
3
你需要当前页面的源代码还是已获取页面的源代码?这不一定是同一个东西。 - haylem
只需要获取到页面即可。 - swatkat
2个回答

4
当前页面的源代码:
document.documentElement.outerHTML

显然,这就是页面目前的样子。对于DHTML,如果你想获取未经修改的源代码,就需要通过AJAX调用再次接收它,并在那里捕获。

编辑:原本应该是innerHTML


这仍然不会包括文档类型声明 :-) - Bergi

4

对于当前页面呈现的HTML:

document.documentElement.outerHTML

另外,你也可以使用 innerHTML,但是你只会得到 <body> 标签的内容。

获取当前页面在加载时检索到的HTML:

通过 AJAX 调用动态重新查询页面。

使用 jQuery(简单方法):

任何其他现代JavaScript库都可以做类似的事情,但为了举例说明,以jQuery为例:

$.ajax(window.location.href, {
  success: function (data) {
    console.log(data);
  }
});

使用XMLHttpRequest对象(更为复杂):

显然,如果您选择这种基本方法,您将需要自己处理一些其他事情,包括跨浏览器支持,但其要点如下:

var request = new XMLHttpRequest();

request.open('GET', window.location.href, false);
request.send();

if (request.status === 200) {
  console.log(request.responseText);
}

我们两个都是半对半错的 :p innerHTML 给你 <head>...</head><body>...</body>,缺少了一个 html 元素。我会相应地编辑我的答案 :D - Amadan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接