我在IE(7和8)中遇到getElementsByTagName問題。使用PHP和XML的Ajax,getElementsByTagName IE問題
我有一個地址查找,它將每個建議地址(作爲XML的一個字符串)返回到PHP會話變量中,然後使用返回請求的會話變量的AJAX函數訪問該變量。
每個會話變量被設置在AJAX地址查找的步驟1(我與嘗試沒有的字符編碼,並用UTF-8):
$_SESSION['addrHint_' . $k1] = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$_SESSION['addrHint_' . $k1] .= '<Address>';
$_SESSION['addrHint_' . $k1] .= '<Postcode>' . $v1->Postcode . ' </Postcode>';
$_SESSION['addrHint_' . $k1] .= '<Line1>' . $v1->Line1 . ' </Line1>';
$_SESSION['addrHint_' . $k1] .= '<Line2>' . $v1->Line2 . ' </Line2>';
$_SESSION['addrHint_' . $k1] .= '<Line3>' . $v1->Line3 . ' </Line3>';
$_SESSION['addrHint_' . $k1] .= '</Address>';
,然後在步驟2中檢索:
header('Content-Type: text/xml');
print_r($_SESSION['addrHint_'.$_REQUEST['addr']]);
在AJAX JS,當狀態是準備好了,它執行當中的代碼其他類似的路線,這樣:
var xmlDoc = xmlHttp.responseXML;
var xmlRoot = xmlDoc.documentElement;
var postcode = xmlRoot.getElementsByTagName("Postcode")[0].childNodes[0].nodeValue;
document.forms[0]["address"+addr+"_Postcode"].value = postcode.substring(0, postcode.length-1);
(它爲地址的每一行做了類似的事情。)長度爲1的代碼片段在那裏,因爲我必須爲每個元素添加一個空格來停止元素爲空時出現的問題。
它在Firefox中正常工作,但在IE中完全沒有。自那時起,我一直在谷歌搜索,並在前5頁找到了一些結果,但沒有解決方案。如果有人能夠說明這一點,我將非常感激。
在此先感謝。
感謝下面的快速回復,我發現問題是在沒有地址的第2行時引起的,它會中斷腳本而不是跳到下一行。我認爲我已經通過向每個空值附加空格來對這個問題進行了排序,所以即使它們爲空,它也會返回一個值。 – bcmcfc 2009-08-03 22:00:46