Spiderken
Legacy Member
Hoi allen,
ik heb een probleempje met de cross-browser compatibiliteit van DOM methodes.
Ik heb in mijn document een DIV staan die title_banner heet. In deze DIV staan nog 2 andere DIVs en als laatste element een "h2".
Deze h2 heb ik een id gegeven = "root" (Deze id is verschillend van pagina tot pagina). Nu wil ik met javascript de waarde van deze attribuut ophalen zodat ik in de pagina aan de hand van deze attribuut iets in de html pagina kan aanpassen.
dit is mijn code:
blok = window.document.getElementById("title_banner");
subelement = document.getElementById("title_banner").lastChild;
switch(subelement.getAttribute("id"))
{
case "root":
blok.style.backgroundImage = "url(images/title_banner_resize.png)";
break;
case "sub1":
blok.style.backgroundImage = "url(../images/title_banner_resize.png)";
break;
case "sub2":
blok.style.backgroundImage = "url(../../images/title_banner_resize.png)";
break;
}
in Internet Explorer krijg ik het resultaat zoals ik had verwacht, maar in FireFox wordt er een error weergegeven: Error: subelement.getAttribute is not a function
Wat ik ook ondervonden heb is als ik de lastChild opvraag van de eerste DIV (title_banner) dat deze in IE als object beschouwd(nml de h2) (nodeType = 1), maar in FireFox wordt deze meteen als Text node beschouwd (nodeType = 3), hetzelfde met de andere DIVs hierin.
Ik weet dat er een cross Browser probleem is voor deze methodes, maar als je een oplossing weet is deze welkom.
greetz...
ik heb een probleempje met de cross-browser compatibiliteit van DOM methodes.
Ik heb in mijn document een DIV staan die title_banner heet. In deze DIV staan nog 2 andere DIVs en als laatste element een "h2".
Deze h2 heb ik een id gegeven = "root" (Deze id is verschillend van pagina tot pagina). Nu wil ik met javascript de waarde van deze attribuut ophalen zodat ik in de pagina aan de hand van deze attribuut iets in de html pagina kan aanpassen.
dit is mijn code:
blok = window.document.getElementById("title_banner");
subelement = document.getElementById("title_banner").lastChild;
switch(subelement.getAttribute("id"))
{
case "root":
blok.style.backgroundImage = "url(images/title_banner_resize.png)";
break;
case "sub1":
blok.style.backgroundImage = "url(../images/title_banner_resize.png)";
break;
case "sub2":
blok.style.backgroundImage = "url(../../images/title_banner_resize.png)";
break;
}
in Internet Explorer krijg ik het resultaat zoals ik had verwacht, maar in FireFox wordt er een error weergegeven: Error: subelement.getAttribute is not a function
Wat ik ook ondervonden heb is als ik de lastChild opvraag van de eerste DIV (title_banner) dat deze in IE als object beschouwd(nml de h2) (nodeType = 1), maar in FireFox wordt deze meteen als Text node beschouwd (nodeType = 3), hetzelfde met de andere DIVs hierin.
Ik weet dat er een cross Browser probleem is voor deze methodes, maar als je een oplossing weet is deze welkom.
greetz...