var xhr = new XMLHttpRequest()
xhr.open('GET', window.location.href, false)
xhr.send()
sourceCodeTxt= xhr.responseText
代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-type" content="text/htmlcharset=utf-8">
<title>远程网页源代码读取</title>
<style type="text/css">
/* 页面字体样式 */
body, td, input, textarea {
font-family:Arial
font-size:12px
}
</style>
<script type="text/javascript">
//用于创建XMLHttpRequest对象
function createXmlHttp() {
//根据window.XMLHttpRequest对象是否存在使用不同的创建方式
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest()//FireFox、Opera等浏览器支持的创建方式
} else {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")//IE浏览器支持的创建方式
}
}
//直接通过XMLHttpRequest对象获取远程网页源代码
function getSource() {
var url = document.getElementById("url").value//获取目标地址信息
//地址为空时提示用户输入
if (url == "") {
alert("请输入网页地址 。")
return
}
document.getElementById("source").value = "正在加载……"//提示正在加载
createXmlHttp()//创建XMLHttpRequest对象
xmlHttp.onreadystatechange = writeSource//设置回调函数
xmlHttp.open("GET", url, true)
xmlHttp.send(null)
}
//将远程网页源代码写入页面文字区域
function writeSource() {
if (xmlHttp.readyState == 4) {
document.getElementById("source").value = xmlHttp.responseText
}
}
</script>
</head>
<body>
<h1>远程网页源代码读取</h1>
<div>
地址:<input type="text" id="url">
<input type="button" onclick="getSource()" value="获取源码">
</div>
<textarea rows="10" cols="80" id="source"></textarea>
</body>
</html>
需要获取网页中的javascript执行后生成的完整的网页源码(通常使用的右键-查看源代码是看不到js执行后的内容的,用firefox的firebug看到的代码就是js执行后的代码),从中提取一些有用的数据。