Also ich hab mich mal bemüht die Methode getElementsByTagNameNS() für den IE umzusetzten, bzw auch für andere Browser, die die Methode nicht kennen.
if (!thisDocument.getElementsByTagNameNS) {
thisDocument.getElementsByTagNameNS = function(namespaceURI,name) {
var getPrefix = function(selectedNode,namespace) {
var foundPrefix = null;
var i = 0;
var childs = selectedNode.childNodes;
do {
if (childs[i].nodeType == 1) {
var nodeAttributes = childs[i].attributes;
if (nodeAttributes.length > 0) {
for (var j = 0; j < nodeAttributes.length; j++) {
if (nodeAttributes.item(j).nodeName == new RegExp("^xmlns[:a-z]*","g").exec(nodeAttributes.item(j).nodeName)) {
if (nodeAttributes.item(j).nodeValue == namespace) {
foundPrefix = new RegExp("^.*:([a-z]+)","g").exec(nodeAttributes.item(j).nodeName).$1;
break;
}
}
}
}
if (foundPrefix != null) { break; }
if (childs[i].childNodes && childs[i].childNodes.length > 0) {
foundPrefix = getPrefix(childs[i],namespace);
if (foundPrefix != null) { break; }
}
i++;
}
} while(childs[i] != undefined);
return foundPrefix;
};
var prefix = getPrefix(thisDocument.documentElement,namespaceURI);
return prefix != null ? this.getElementsByTagName(prefix + ":" + name) : prefix;
};
}
Leider hab ich noch keine Idee, wie ich die Methode allen Nodes zur Verfügung stellen kann.
Helft mir bitte!