问题,js 读取 xml 文档,返回数据
-------------------------------------------
a.html
------------------------------------------- HTML code
......
<script type="text/javascript" src="b.js"></script>
<script type="text/javascript" src="c.js"></script>
<body>
<div id=name></div>
......
-------------------------------------------
b.js
------------------------------------------- JScript code
function loadPage(){
//载入xml数据
var url = "d.php";
var method = "GET";
var mess = "等待";
var state = true;
var xDoc = THXml(url,method,mess,state);
alert(xDoc);
}
window.onload = function(){
loadPage();
}
-------------------------------------------
c.js
-------------------------------------------
JScript code
/*
XML文档操作
*/
function THXml(url,method,mess,state){
var xmlHttp = null;
var xDoc = null; function xHCreate(){ try // Firefox,Opera
{
xmlHttp = new XMLHttpRequest();
}
catch(err)
{
try // 新版IE
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(err)
{
try // 旧版IE
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(err)
{
alert("您的浏览器不支持AJAX");
return false;
}
}
}
}
function xHOpen(){
return xmlHttp.open(method,url,state);
}
function xHsend(){
return xmlHttp.send(null);
}
function xHStateChange(){
if(xmlHttp.readyState == 4) // 请求已完成(可以访问服务器响应并使用它)可以增加载入菜单动作Loading....
{
if(xmlHttp.status == 200) // 请求已成功完成
{
xDoc = xmlHttp.responseXML;
}
else{
alert(mess);
}
}
else{
getById("main").innerHTML = "请等待";
}
}
function xHExec(){
xHCreate();
xHOpen();
xmlHttp.onreadystatechange = xHStateChange;
xHsend();
}
xHExec();
return xDoc;
}
-------------------------------------------
d.php
-------------------------------------------
PHP code
<?php
header("Content-Type: text/xml; charset:gb2312");echo "<?xml version='1.0' encoding='gb2312'?>
<Person>
<ID>
a
</ID>
</Person>
";
?>====================================================== 现在我遇到个非常郁闷的问题,就是第一次载入的时候,b.js的xDoc为null,刷新一下就变成object了,不知道改怎么解决,让页面载入b.js的xDoc为返回的xml文档
-------------------------------------------
a.html
------------------------------------------- HTML code
......
<script type="text/javascript" src="b.js"></script>
<script type="text/javascript" src="c.js"></script>
<body>
<div id=name></div>
......
-------------------------------------------
b.js
------------------------------------------- JScript code
function loadPage(){
//载入xml数据
var url = "d.php";
var method = "GET";
var mess = "等待";
var state = true;
var xDoc = THXml(url,method,mess,state);
alert(xDoc);
}
window.onload = function(){
loadPage();
}
-------------------------------------------
c.js
-------------------------------------------
JScript code
/*
XML文档操作
*/
function THXml(url,method,mess,state){
var xmlHttp = null;
var xDoc = null; function xHCreate(){ try // Firefox,Opera
{
xmlHttp = new XMLHttpRequest();
}
catch(err)
{
try // 新版IE
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(err)
{
try // 旧版IE
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(err)
{
alert("您的浏览器不支持AJAX");
return false;
}
}
}
}
function xHOpen(){
return xmlHttp.open(method,url,state);
}
function xHsend(){
return xmlHttp.send(null);
}
function xHStateChange(){
if(xmlHttp.readyState == 4) // 请求已完成(可以访问服务器响应并使用它)可以增加载入菜单动作Loading....
{
if(xmlHttp.status == 200) // 请求已成功完成
{
xDoc = xmlHttp.responseXML;
}
else{
alert(mess);
}
}
else{
getById("main").innerHTML = "请等待";
}
}
function xHExec(){
xHCreate();
xHOpen();
xmlHttp.onreadystatechange = xHStateChange;
xHsend();
}
xHExec();
return xDoc;
}
-------------------------------------------
d.php
-------------------------------------------
PHP code
<?php
header("Content-Type: text/xml; charset:gb2312");echo "<?xml version='1.0' encoding='gb2312'?>
<Person>
<ID>
a
</ID>
</Person>
";
?>====================================================== 现在我遇到个非常郁闷的问题,就是第一次载入的时候,b.js的xDoc为null,刷新一下就变成object了,不知道改怎么解决,让页面载入b.js的xDoc为返回的xml文档
return xmlHttp.open(method,url,state);
} function xHsend(){
return xmlHttp.send(null);
} function xHExec(){
xHCreate();
xHOpen();
xmlHttp.onreadystatechange = xHStateChange;
xHsend();
}
xHExec();
return xDoc; 兄弟,说句真心话:任重而道远,加油!