죄송합니다. 이전에 질문을 받았다면 비슷한 질문을 모두 읽었습니다.getElementsByTagName 가끔 undefined로 반환되는 경우
getElementsByTagName에 문제가 있습니다. iFrame이있는 웹 페이지가 있으며, iFrame은 기본적으로 API를 호출하기 때문에 현재 사용자의 이름을 반환해야합니다. 여기에 코드의 관련 비트는 다음과 같습니다
는function apicallback(xml_request) {
if (xml_request.readyState == 4 && xml_request.status == 200) {
var xmldoc = xml_request.responseXML;
if (xmldoc.getElementsByTagName('s:Fault').length > 0) {
alert(xmldoc.getElementsByTagName('s:Reason')[0].childNodes[0].textContent);
}
else if (xmldoc.getElementsByTagName('GetUserDetailsByUserIdResponse').length > 0) {
//process data
document.getElementById('results').innerHTML = xmldoc.getElementsByTagName('b:FullName')[0].textContent;
}
}
}
또한, 여기에 해당 xmldoc에가는 XML 응답입니다 - 데이터 자체가 제거되지만 모든 태그는 특히 그 (것)들에있는 데이터가 NULL이 아닌.
파이어 폭스와 IE에서> <GetUserDetailsByUserIdResponse xmlns="http://tempuri.org/">
> <GetUserDetailsByUserIdResult xmlns:b="http://schemas.datacontract.org/2004/07/ErrisWebApi.Model"
> xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
> <b:BirthDate></b:BirthDate>
> <b:CommPrefID i:nil="true"/>
> <b:FirstName></b:FirstName>
> <b:FullName></b:FullName>
> <b:GenderID></b:GenderID>
> <b:LastName></b:LastName>
> <b:LegalForename></b:LegalForename>
> <b:LegalSurname></b:LegalSurname>
> <b:MiddleNames i:nil="true"/>
> <b:NameSuffix i:nil="true"/>
> <b:PersonID></b:PersonID>
> <b:PersonName></b:PersonName>
> <b:PostalTitleID i:nil="true"/>
> <b:PrefSurnameFirst i:nil="true"/>
> <b:SimpleGenderID i:nil="true"/>
> <b:SurnameFirst i:nil="true"/>
> <b:TitleID></b:TitleID>
> </GetUserDetailsByUserIdResult>
> </GetUserDetailsByUserIdResponse>
이, 크롬에서 그러나 나는 오류가 "속성 '는 TextContent을'정의의 읽을 수 없습니다"완벽하게 정상적으로 얻을 작품 - 그래서 xmldoc.getElementsByTagName('b:FullName')[0].textContent;
문제지만 내 인생 내가 할 수 없습니다 왜 그렇게 될지 생각해보십시오.
API 응답을 HTML 페이지로 저장하고 Chrome의 콘솔을 사용하여 정확한 코드 줄을 실행 했으므로 내가 예상 한 결과를 얻었으므로 때로는 실패하지 않는 이유는 알 수 없습니다.
도와주세요.
"GetUserDetailsByUserIdResponse"태그가 있습니까? – nicael
당신도 xml을 공유해야합니다. – yogi
죄송합니다 @yogi, 나는 그것을 지금 붙였습니다, 전에 잊어 버렸습니다. @nicael, 예 GetUserDetailsByUserIdResponse는 태그이지만 GetuserDetails가 아닌 getElementsByTagName ('b : FullName')에 대한 불만이 있습니다. –