<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-type" content="text/html charset=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>
比如说,现在有一个外部的html文件test.html,内容是:
<input type="button" value="外部文件按钮" /><p>外部文件p标签</p>
现在在这个网页中加载test.html中的内容,这个网页的源码为:
<html><head>
<meta http-equiv="Content-Type" content="text/html charset=utf-8" />
<title></title>
<script src="../Scripts/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
function GetHtml() {
$.ajax({
type: "POST",
url: 'Handler.ashx', //提交到一般处理程序请求数据
success: LoadHtml
})
}
function LoadHtml(data) {
var div = document.getElementById("out")
div.innerHTML = data//注意这里,要是想展示test.heml中的内容就用这个,如果显示源代码则用innerText
}
</script>
</head>
<body>
<input type="button" value="加载外部Html文件内容" onclick="GetHtml()" />
<div id="out">
</div>
</body>
</html>
上面脚本中写的Handler.ashx是一个一般处理程序,代码是这样的:
public void ProcessRequest(HttpContext context){
context.Response.ContentType = "text/plain"
string html = GetOutsideContent("test.html")
context.Response.Write(html)
}
public static string GetOutsideContent(string Path)
{
try
{
StreamReader sr = new StreamReader(HttpContext.Current.Server.MapPath(Path), System.Text.Encoding.GetEncoding("utf-8"))
string content = sr.ReadToEnd().ToString()
sr.Close()
return content
}
catch
{
return "错误"
}
}
public bool IsReusable
{
get
{
return false
}
}
这是asp.net下的,如果你是使用其他语言的都大同小异,从后台读取文件中的内容,使用Ajax获取后台传递的文件中的内容,思路就是这样。