利用AJAX,得到XML和JSON信息,不用JQuery等UI框架,兼容 IE、Firefox、Chrome、Safari、Opera 等浏览器。
2011-03-16 15:03 音乐让我说 阅读(862) 评论(0) 收藏 举报代码胜过一切说明:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>利用AJAX,得到XML和JSON信息,不用JQuery等UI框架</title>
<script language="javascript" type="text/javascript">
var xmlDoc = null, xmlhttp = null;
function InitXMLHttpRequest() {
xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
}
function LoadXML() {
if (xmlhttp == null) {
InitXMLHttpRequest();
}
if (xmlhttp == null) {
alert("你的浏览器不支持 XMLHttpRequest");
return;
}
xmlhttp.open("GET", "MyInfo.xml?randomNum=" + Date.parse(new Date()), true);
xmlhttp.setRequestHeader("Content-Type", "text/xml");
xmlhttp.onreadystatechange = GetXMLMessage;
xmlhttp.send(null);
}
function GetXMLMessage() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
xmlDoc = xmlhttp.responseXML.documentElement;
if (xmlDoc == null) {
alert("返回的XML数据不正确。");
return;
}
var nodes = xmlDoc.getElementsByTagName("t1");
for (i = 0; i < nodes.length; i++)
{
var title = nodes[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
var url = nodes[i].getElementsByTagName("url")[0].childNodes[0].nodeValue;
AppendRow(title, url);
}
}
}
function LoadJSON() {
if (xmlhttp == null) {
InitXMLHttpRequest();
}
if (xmlhttp == null) {
alert("你的浏览器不支持 XMLHttpRequest");
return;
}
xmlhttp.open("GET", "MyJson.txt?randomNum=" + Date.parse(new Date()), true);
xmlhttp.setRequestHeader("Content-Type", "text/plain");
xmlhttp.onreadystatechange = GetJSONMessage;
xmlhttp.send(null);
}
function GetJSONMessage() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var jsonText = xmlhttp.responseText;
if (jsonText == null || jsonText == "") {
alert("返回的JSON数据为空!");
return;
}
var jsonObj = eval('(' + jsonText + ')');
var jsonObjLength = jsonObj.length;
for (var i = 0; i < jsonObjLength; i++) {
var item = jsonObj[i];
AppendRow(item.title, item.url);
}
}
}
function AppendRow(title,url) {
var tb = document.getElementById("tbody_note");
var tr = document.createElement("tr");
var td1 = document.createElement("td");
td1.innerHTML = title;
tr.appendChild(td1);
var td2 = document.createElement("td");
td2.innerHTML = "<a href='" + url + "'>" + url + "</a>";
tr.appendChild(td2);
tb.appendChild(tr);
}
</script>
</head>
<body>
<div>
<input type="button" value="加载XML数据" onclick="LoadXML();" />
<input type="button" value="加载JSON数据" onclick="LoadJSON();" />
</div>
<br /><br />
<table border="1">
<tr>
<td>标题</td>
<td>网址</td>
</tr>
<tbody id="tbody_note">
</tbody>
</table>
</body>
</html>
MyInfo.xml
<?xml version="1.0" encoding="utf-8" ?>
<note>
<t1>
<title>百度</title>
<url>http://www.baidu.com</url>
</t1>
<t1>
<title>新浪</title>
<url>http://www.sina.com.cn</url>
</t1>
</note>
MyJson.txt
[{ title : "网易", url : "http://www.163.com" }, { title : "搜狐", url : "http://www.sohu.com" }]
谢谢浏览!
作者:音乐让我说(音乐让我说 - 博客园)
出处:http://music.cnblogs.com/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
浙公网安备 33010602011771号