看板 Ajax 關於我們 聯絡資訊
為什麼我的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)
tn801534:剛自己測了一下好像第一次會是undefined 第二次就有了 07/02 18:09
tn801534:感覺好奇怪...= = 07/02 18:09
fillano:sendRequest第三行做的事情移到catchtokenResult來做吧。 07/02 18:20
zhadow:catchtokenResult 中跑到 else 中就是 undefined 了. 07/02 18:31
zhadow:在設定innerHTML=edittoken前應確定 readystate是你要的 07/02 18:33
todau:很正常啊,因為跑到sendRequest第三行時,XHR不一定已經呼叫 07/03 23:04