初学ajax就碰到一堆问题,拜托各位解答一下

Cain 2005-11-18 04:58:18
<script language="javascript" type="text/javascript">

function refresh(){

var oXMLDoc = new ActiveXObject('MSXML'); //创建'MSXML'对象
var sURL = "./customize/customize.xml"; //获取登陆状态数据的地址
oXMLDoc.url = sURL; //load数据
var oRoot = oXMLDoc.root; //获取返回xml数据的根节点

var name;
var url;
var link;
var createtime;

if(oRoot.children != null){
var outputString = "";
outputString += "<table width=300 border=1><tr>";
for (var i = 0, j = 0; i < oRoot.children.length; i++, j++)
{
var parent = oRoot.children.item(i);
if (0 == (j % 2))
{
outputString += "</tr><tr>";
}

// for (var j = 0; j < parent.children.length; j++)
// {
name = parent.children.item(0).text;
url = parent.children.item(1).text;
link = parent.children.item(2).text;
createtime = parent.children.item(3).text;

outputString += "<td><a href='"+link+"'>"+ url +"</a><br>"+name+"</td>";
// }


}
outputString += "</tr></table>";

jindu.innerHTML = outputString;
}
}

function refresh_2(){

var oXMLDoc;
if (window.XMLHttpRequest) { // Mozilla or ...

oXMLDoc = new XMLHttpRequest();
oXMLDoc.open("GET", "http://localhost/ajax/customize.xml", false);
oXMLDoc.send();
alert(oXMLDoc.responseText); // 不知道在firefox下这里的代码究竟应该怎么写
} else if (window.ActiveXObject) { // IE

oXMLDoc = new ActiveXObject("Microsoft.XMLHTTP");
oXMLDoc.open("GET", "http://localhost/ajax/customize.xml", false);
oXMLDoc.send();
document.write(oXMLDoc.responseText);
// 这里可以正常响应并返回xml对象,但是我不知道该怎么获取这个对象的各个属性
// 我用oRoot.root不能返回这个根节点,也不能使用oRoot.children
// 为什么refresh()却可以?
var oRoot = oXMLDoc.responseXML;
}

// ......

}

function dorefresh(){
var timeoutid = setInterval("refresh()",2000);
}

</script>
<html>
<head>
</head>

<body onLoad="dorefresh();"> <!-- end body tag -->

<div ID="jindu" >

</div>
</body>

</html>

xml文件:
<?xml version="1.0" encoding="gb2312" ?>

<imageCenter>

<image>
<name>a</name>
<url>b</url>
<link>c</link>
<createtime>2005-11-17 11:13:00</createtime>
</image>

</imageCenter>

另外还有一个问题,Microsoft.XMLHTTP 和 MSXML有什么区别?
...全文
384 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chaircat 2005-11-21
  • 打赏
  • 举报
回复
楼主去这里看看吧~~~有跨平台的AJAX示例代码...
http://developer.mozilla.org/en/docs/AJAX:Getting_Started
yzty 2005-11-21
  • 打赏
  • 举报
回复


---------------------------------
雨中太阳
网页:http://www.SearchAll.cn
搜索:http://www.SearchAll.cn/search/Search.htm
  • 打赏
  • 举报
回复
顶一下
Cain 2005-11-21
  • 打赏
  • 举报
回复
顶一下
surfchen 2005-11-19
  • 打赏
  • 举报
回复
oXMLDoc.open("GET", "http://localhost/ajax/customize.xml", false);
====
既然是同步加载,就不是ajax了。。
ajax的全称就是异步javascript和xml


alert(oXMLDoc.responseText); // 不知道在firefox下这里的代码究竟应该怎么写
=====
firefox下也是responseText

另外,不建议自己写判断。可以用一个库来使ie支持xmlhttprequest对象而不用写ActiveXObject。
看这里:http://www.scss.com.au/family/andrew/webdesign/xmlhttprequest/

Cain 2005-11-18
  • 打赏
  • 举报
回复
if (window.XMLHttpRequest) { // Mozilla or ...

oXMLDoc = new XMLHttpRequest();
oXMLDoc.open("GET", "http://localhost/ajax/customize.xml", false);

/*************
原来只要在这里传一个空值就可以了
但是怎样才能获取返回的xml对象的各个成员属性呢?
***************/
oXMLDoc.send(null);

alert(oXMLDoc.responseText); // 不知道在firefox下这里的代码究竟应该怎么写
} else if (window.ActiveXObject) { // IE
Cain 2005-11-18
  • 打赏
  • 举报
回复
refresh()可以正常运行

refersh_2()有错误

困惑的地方都在注释中标识出来了:(

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧