चेक इस jsfiddle अलग से Chrome और Firefox के लिए अलग-अलग परिणाम देते हैं: 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();
}
मैं क्या देख रहा हूँ कि है हैChildNodes() फ़ायरफ़ॉक्स के लिए झूठा रिटर्न और क्रोम के लिए सच है।
यदि nodeType एक विशेषता नोड है, तो क्रोम में इसका एक बच्चा नोड होता है जिसमें वास्तविक मूल्य होता है। लेकिन फ़ायरफ़ॉक्स में, इसमें कोई भी बच्चा नोड नहीं है और मान विशेषता नोड के अंदर ही संग्रहीत किया जाता है।
मुझे यह जानकर उत्सुकता है कि इस सूक्ष्म अंतर पर कोई दस्तावेज है?
मैं पहले से ही निम्नलिखित दस्तावेजों की जाँच की, लेकिन किसी भी तरह के विशेष नहीं पा सके:
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
दिलचस्पी रखने वाला, ओपेरा क्रोम – dmi3y
के साथ सहमत हो सकता है शायद इसे वेबकिट बनाम गेको के साथ करना होगा। ओपेरा वेबकिट पर आधारित है? – bits
नहीं, उनके पास अपना प्रतिष्ठा है, बहुत पुराना अनुमान है – dmi3y