0

问题几乎总结了它。我无权访问框架,我需要获取当前页面的完整 HTML 源代码。是否有一些 JS 原生支持的命令?

作为记录,我尝试过:

document.getElementsByTagName('html')[0].innerHTML
4

2 回答 2

4

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

var generatedSource = new XMLSerializer().serializeToString(document);

这给了字符串

<!DOCTYPE html><html><head>

<title>javascript - Source code of HTML page without Framework - Stack Overflow</title>
...
于 2013-07-03T14:34:53.360 回答
2

我认为不可能从当前页面获得完整的、实际的、实时的页面源。(编辑:看起来,这是可能的!见@Paul S.他的回答)

但是您可以做些什么来加载初始的、未更改的 HTML,只需通过 AJAX 加载页面,然后检查服务器返回的页面源。

$.get(document.location.href, function(response) { 
    window.console.log(response);
});

这是使用 jQuery,但您也可以使用

变量 xmlhttp;
如果(window.XMLHttpRequest){
    // IE7+、Firefox、Chrome、Opera、Safari 的代码
    xmlhttp=新的 XMLHttpRequest();
} 别的 {
    // IE6、IE5 的代码
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
    如果(xmlhttp.readyState==4 && xmlhttp.status==200){
        window.console.log(xmlhttp.responseText);
    }
}
xmlhttp.open("GET",document.location.href,true);
xmlhttp.send();
于 2013-07-03T14:30:12.210 回答