Hello again,
vandaag eens een JS vraagje. Ik ben bezig om een algemene functie te schrijven voor het creeëren van nieuwe XML nodes in een XML document met JS. Maar, omdat ik mijn XHTML en XML ook als XML serveer moet ik createElementNS("namespace","nodename") gebruiken. Ik zou zeggen bekijk het volgende stukje code:
Code:
var GLOBAL = { //private properties
_ns: undefined,
//public properties
baseURL: undefined,
//private methods
_getNS: function(){
if(document.getElementById){
this._ns = document.getElementsByTagName("html")[0].getAttribute("xmlns");
return;
}else{
return false;
}
},
_getBaseURL: function(){
if(document.getElementById){
this.baseURL = document.getElementsByTagName("base")[0].getAttribute("href");
}else{
//add method for non compatible browsers
}
},
//public methods
createNode: function(nn, att, el){
if(document.getElementById){
if(!this._ns){
GLOBAL._getNS();
}
var _b = document.getElementsByTagName('body')[0];
var _e = document.createElementNS(this._ns,nn);
for(var i in att){
_e.setAttribute(i, att[i]);
}
_b.appendChild(_e);
}
}
};
//create some link
var attributes = {href: "/ergens/", id: "someURL"};
GLOBAL.createNode("a", attributes, "body");
Echter krijg ik de volgende error:
_b has no properties
Volgens mij ben ik wederom zo blind dat ik weer zwaar ergens overheen kijk want volgens mij zou het zo gewoon moeten werken..
Thanx in advance
Marijn
(Bewerkt door marijntje om 0:12, 21-12-2006)
(Bewerkt door marijntje om 10:14, 21-12-2006)
(Bewerkt door marijntje om 10:16, 21-12-2006)