Firefox提示"undefined",IE正常显示!

街头小贩 2007-08-16 05:08:52
XML文件内容:
<?xml version="1.0" encoding="gb2312" ?>
<sitemainmenu>
<item>
<enmenu>Home</enmenu>
<chmenu>首页</chmenu>
<url>/</url>
</item>
<item>
<enmenu>Product</enmenu>
<chmenu>产品资讯</chmenu>
<url>/product/</url>
</item>
<item>
<enmenu>Support</enmenu>
<chmenu>技术支持</chmenu>
<url>/support/</url>
</item>
<item>
<enmenu>Customer</enmenu>
<chmenu>客户服务</chmenu>
<url>/service/</url>
</item>
<item>
<enmenu>Information</enmenu>
<chmenu>信息中心</chmenu>
<url>/company/</url>
</item>
</sitemainmenu>

HTML内容:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<script language="javascript" type="text/javascript">
<!--
var xmlhttp;
try{
xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
}catch(e){
try{
xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
}catch(e){
try{
xmlhttp=new XMLHttpRequest();
}catch(e){}
}
}

//创建对一个XML文件的请求
xmlhttp.open("get", "sitemainmenu.xml");
//表单值处理程序
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState == 4){
if(xmlhttp.status ==200){
var strdate=xmlhttp.responseXML;
readNewRecord(strdate);
}else{
alert(xmlhttp.status);
}
}
}
//发送表单值
xmlhttp.send(null);

//设置http头


//读取XML文件
function readNewRecord(strdate){
var nodebuffer = "";
nodebuffer = nodebuffer +"<ul>";

var prognode = strdate.getElementsByTagName("item");
alert(prognode.length);
for(var i=0; i<prognode.length; i++){
var menunodeText = prognode[i].childNodes[1];
var urlnodeText = prognode[i].childNodes[2];
alert(menunodeText);
nodebuffer = nodebuffer +"<li><a href='"+ urlnodeText.text + "'>"+ menunodeText.text +"</a></li>";
}

nodebuffer = nodebuffer +"</ul>";
document.write (nodebuffer);
}
//-->
</script>
</body>
</html>


说明:就是动态读取XML文件中item的记录,写到一个<ul>中~,高手帮俺看看!
...全文
746 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
犀山居士 2007-08-23
  • 打赏
  • 举报
回复
我的那段代码并没有叫你访问prognode[i].firstChild.nodeName.text啊
街头小贩 2007-08-19
  • 打赏
  • 举报
回复
to:lameig(犀山居士)
今天我在公司试了一下!
第一:prognode[i].firstChild.nodeName,alert提示:#text是个空白(就W3C说的: Whitespace in the DOM)

第二:在mozilla或safari中,只支持data,就是:var menunodeText = prognode[i].childNodes[1].data
犀山居士 2007-08-18
  • 打赏
  • 举报
回复
回xiaofanku(发扬中国博大的无术精神)
我这个无论在什么浏览器里都不会显示"undefined"!,只有在获得数据出错时才会提示“加载失败,请稍候重试。”
如果不能正确实例化XMLHttpRequest对象,就不会去获取数据而已
if (httpRequest) {
httpRequest.open('GET', url, false);
httpRequest.send(null);
if(httpRequest.status == 200)
{
return httpRequest.responseText;
}
else
{
return "<span><font color=red>加载失败,请稍候重试。</font></span>";
}
}
这里,只有当httpRequest对象不为空才会去获取数据
犀山居士 2007-08-18
  • 打赏
  • 举报
回复
回xiaofanku(发扬中国博大的无术精神)
我这个无论在什么浏览器里都不会显示"undefined"!,只有在获得数据出错时才会提示“加载失败,请稍候重试。”
chaircat 2007-08-18
  • 打赏
  • 举报
回复
IE只支持text
FF只支持textContent
判断一下...
街头小贩 2007-08-18
  • 打赏
  • 举报
回复
to:lameig(犀山居士)
用你方法是不是意味着在FF或者说是Mozilla的浏览器都会提示这个:加载失败,请稍候重试?
街头小贩 2007-08-17
  • 打赏
  • 举报
回复
to:chaircat(chaircat)
在safari中正常了!在IE中又显示"undefined"了!,就没有两全其美的方法么
犀山居士 2007-08-17
  • 打赏
  • 举报
回复
网上很多都是这样用的,要先判断,一上分支即可
function LoadFile(url)
{
var httpRequest;
if (typeof XMLHttpRequest != 'undefined') {
httpRequest = new XMLHttpRequest();
}
else if (typeof ActiveXObject != 'undefined') {
httpRequest = new ActiveXObject('Microsoft.XMLHTTP');
}
if (httpRequest) {
httpRequest.open('GET', url, false);
httpRequest.send(null);
if(httpRequest.status == 200)
{
return httpRequest.responseText;
}
else
{
return "<span><font color=red>加载失败,请稍候重试。</font></span>";
}
}
}
chaircat 2007-08-17
  • 打赏
  • 举报
回复
FF不支持.text...
用textContent
街头小贩 2007-08-16
  • 打赏
  • 举报
回复
to:Aishangfeier()
兄弟!这个不可以用在FF下么:xmlhttp=new XMLHttpRequest();

Aishangfeier 2007-08-16
  • 打赏
  • 举报
回复
var xmlhttp;
try{
xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
}catch(e){
try{
xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
}catch(e){
try{
xmlhttp=new XMLHttpRequest();
}catch(e){}
}
}
这里可能有问题,创建xmlhttprequest对象时,ff浏览器识别不出,而ie可以。

52,782

社区成员

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

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