확인이 jsfiddle 별도로 크롬과 파이어 폭스에 대해 서로 다른 결과를 반환 : http://jsfiddle.net/9aE2p/1/hasChildNodes()는 크롬과 파이어 폭스에서
또한 여기에 동일한 코드를 붙여 :
var xmlStr = '<?xml version="1.0" encoding="UTF-8"?><abc abc_attr="abc_attr_value"><abc_child abc_child_attr="abc_child_attr_value1"/><abc_child abc_child_attr="abc_child_attr_value2"/></abc>';
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlStr, "text/xml");
var path = 'abc/@abc_attr';
var nodes = xmlDoc.evaluate(path, xmlDoc, null, XPathResult.ANY_TYPE, null);
var result = nodes.iterateNext();
while (result) {
var textContent = '<BR>result.textContent: "' + result.textContent + '"';
var nodeType = '<BR>result.nodeType: "' + result.nodeType + '"';
var resultHasChildren = '<BR>result.hasChildNodes(): ' + result.hasChildNodes();
document.write(nodeType);
document.write(textContent);
document.write(resultHasChildren);
result = nodes.iterateNext();
}
내가 납니까 무슨이다 hasChildNodes()는 Firefox의 경우 false를 반환하고 Chrome의 경우 true를 반환합니다.
nodeType이 속성 노드 인 경우 Chrome에 실제 값이있는 하위 노드가 있습니다. 그러나 Firefox에서는 자식 노드가 없으며 속성 노드 자체에 값이 저장됩니다.
이 미묘한 차이점에 대한 문서가 있는지 궁금합니다.
는 이미 다음의 서류를 확인하지만, 그러한 구체적인 찾을 수 없습니다 :
https://developer.mozilla.org/en-US/docs/DOM/Node.hasChildNodes
을 http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-810594187
오페라는 Chrome – dmi3y
과 동의했습니다. 아마 Webkit vs Gecko와 관련이 있습니다. Opera는 웹킷을 기반으로합니까? – bits
아니, 그들은 자신의 프레스토가있어, 아주 오래된 것을 맞춘 것 같아. – dmi3y