2012-11-21 2 views
6

확인이 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

+0

오페라는 Chrome – dmi3y

+0

과 동의했습니다. 아마 Webkit vs Gecko와 관련이 있습니다. Opera는 웹킷을 기반으로합니까? – bits

+0

아니, 그들은 자신의 프레스토가있어, 아주 오래된 것을 맞춘 것 같아. – dmi3y

답변

2
으로 단지 내 댓글에 게시

, 나는 이것이 변경과 관련이있다 생각 way 속성은 이전 버전과 달리 DOM4에서 구현됩니다.

  • Link to Attr interface documentation on Mozilla Developer Network, MDN
    • 이전 버전에서 Attr 인터페이스는 Node을 확장했다. 이 변경되어 더 이상 Node 메서드를 사용할 수 없습니다. 그러나 namevalue 속성은 여전히 ​​존재합니다.

    0

    선택

    var path = 'abc/@abc_attr'; 
    

    반환 전혀 자식 노드를 가질 수없는 자연입니다 노드 (Attr의)를, 속성 및 속성에 대한 사용되지 않는 모질라 개발자 (추측) 이유 hasChildNodes을 만든()가있다.

    선택기

    var path = 'abc[@abc_attr]' 
    

    리턴 노드 소자 (요소) 여기

    샘플 :

    http://jsbin.com/udugug/1

    여기 비트 광하게

    사양 링크 :

    http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-637646024

    관련 문제