作者tn801534 (踢恩)
看板Ajax
标题[问题] 关於变数
时间Wed Jul 2 17:40:18 2008
为什麽我的edittoken在c里面显示是对的
可是在d里面显示undefined
我不是宣告全域了吗?
我测试发现catchtokenResult的给值动作好像让edittoken变成local的给值
请问要怎麽改呢
以下附上程式码
有点繁杂抱歉
var edittoken;
function sendtokenRequest(){
url='wiki/api.php?action=query&prop=info&intoken=edit&titles=' + getTitl
+'&format=xml';
createXHR();
xmlHttp.onreadystatechange=catchtokenResult;
xmlHttp.open('GET',url,true);
xmlHttp.send(null);
}
function catchtokenResult(){
var obj=document.getElementById('
c');
if (xmlHttp.readyState==4 || xmlHttp.readyState=='complete'){
if (xmlHttp.status == 200) {
s=xmlHttp.responseXML;
edittoken=s.getElementsByTagName('page')
[0].getAttribute('edittoken');
obj.innerHTML=edittoken;
} else {
obj.innerHTML=xmlHttp.status;
}
}
}
function sendRequest(){
var obj=document.getElementById('
d');
sendtokenRequest();
obj.innerHTML=edittoken;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.117.4.47
※ 编辑: tn801534 来自: 140.117.4.47 (07/02 18:01)
※ 编辑: tn801534 来自: 140.117.4.47 (07/02 18:04)
1F:→ tn801534:刚自己测了一下好像第一次会是undefined 第二次就有了 07/02 18:09
2F:→ tn801534:感觉好奇怪...= = 07/02 18:09
3F:推 fillano:sendRequest第三行做的事情移到catchtokenResult来做吧。 07/02 18:20
4F:→ zhadow:catchtokenResult 中跑到 else 中就是 undefined 了. 07/02 18:31
5F:→ zhadow:在设定innerHTML=edittoken前应确定 readystate是你要的 07/02 18:33
6F:推 todau:很正常啊,因为跑到sendRequest第三行时,XHR不一定已经呼叫 07/03 23:04