Off-hand, one can think of at least two methods both with some limitation(s).
[tt]
function doit() {
if (window.ActiveXObject) {
var oxmlhttp=new ActiveXObject("Msxml2.xmlhttp");
} else if (window.XMLHttpRequest) {
var oxmlhttp=new XMLHttpRequest();
}
oxmlhttp.open("GET",window.location,false);
oxmlhttp.send(null);
var s=oxmlhttp.responseText;
oxmlhttp=null;
alert(s);
}
function doit2() {
var s="<head>\n"+document.getElementsByTagName("head")[0].innerHTML+"\n</head>\n";
s+="<body>\n"+document.body.innerHTML+"\n</body>\n";
alert(s);
}[/tt]