我對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。
不知道如何解決這個問題?
這裏的直播現場是否有幫助: www.tcmulder.com/art
(呵呵,注意我用(curPage)curStage],固定第一您注意到的問題)
你有沒有考慮過使用像[jQuery](http://jquery.com/)這樣的JS框架?它會讓你的生活變得更輕鬆。 – NullUserException 2010-09-23 17:36:47
我試圖在本網站上展示我的JavaScript手動編碼技巧。我沒有用jQuery重建這部分,但我想避免在最終的網站。偉大的框架,但:謝謝你的提示。 – tcmulder 2010-09-24 20:23:45
我們是否有可能清理這個問題?對於已發佈爲完整答案而不是原始問題的評論或補充的答案,有回覆。 – 2010-09-27 14:05:46