手机浏览器 ajax错误,在IE浏览器中出现Ajax错误“undefined”

在尝试使用Ajax从XML文件中获取数据并在所有浏览器中正常显示,但在IE中遇到'undefined'错误。代码创建了一个XMLHttpRequest对象来请求数据,然后尝试通过textContent或innerText属性获取XML元素的内容。尽管在其他浏览器中工作,但在IE中,无论使用textContent还是innerText,都返回'undefined'。寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我对Ajax很新颖。我试图把一个XML文件的某些特定部分成一个div我的网页上,并在最近每个浏览器下面的作品,除了IE:在IE浏览器中出现Ajax错误“undefined”

var xhr = false;

//Executed to request content from the server

function setContent(){

if(window.XMLHttpRequest){

xhr = new XMLHttpRequest();

} else {

if(window.ActiveXObject){

xhr = new ActiveXObject("Microsoft.XMLHTTP");

}

}

xhr.onreadystatechange = showContent;

xhr.open("GET", "ajax/art.xml", true);

xhr.send(null);

}

//Executed to set the appropriate text once the server has gathered the data

function showContent(){

if(xhr.readyState == 4){

if(xhr.status == 200 || window.location.href.indexOf("http") == -1){

var newData = xhr.responseXML.getElementsByTagName(curPage).textContent;

}

var textBox = document.getElementById("textBox");

textBox.innerHTML = newData;

}

}

(curPage的值在代码的其他地方设置与似乎有正确的值) 当我在服务器上的IE中执行此代码时,我在textBox Div中获取单词“undefined”,而不是从XML文档中获取内容。我该如何解决这个问题?

在此先感谢<> <

感谢bobince,但似乎没有任何工作。

这是关于textContent的一个有趣的注释。我想:

if(xhr.responseXML.getElementsByTagName(allPages[curPage])[curStage].textContent != undefined){

var newText = xhr.responseXML.getElementsByTagName(curPage)[curStage].textContent;

} else {

var newText = xhr.responseXML.getElementsByTagName(curPage)[curStage].innerText

}

}

以来的innerText应该在除了FF和的textContent每一个浏览器,除了IE浏览器每次应该工作工作,但我仍然得到“未定义”在IE中。此外,如果我只是使用innerText并忘记了FF兼容性,那么在每个浏览器中,我都会得到“undefined”,而不仅仅是IE。

不知道如何解决这个问题?

(呵呵,注意我用(curPage)curStage],固定第一您注意到的问题)

2010-09-23

tcmulder

+0

你有没有考虑过使用像[jQuery](http://jquery.com/)这样的JS框架?它会让你的生活变得更轻松。 –

2010-09-23 17:36:47

+0

我试图在本网站上展示我的JavaScript手动编码技巧。我没有用jQuery重建这部分,但我想避免在最终的网站。伟大的框架,但:谢谢你的提示。 –

2010-09-24 20:23:45

+0

我们是否有可能清理这个问题?对于已发布为完整答案而不是原始问题的评论或补充的答案,有回复。 –

2010-09-27 14:05:46

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值