Archief - Javascript: Document Object Model probleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

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...

S3cT0r

Legacy Member
Dit lijkt zeer hard op een whitespace probleem, probeer alle spaties, tabs of zelfs newlines tussen uw elementen te verwijderen en zie of het dan werkt

Spiderken

Legacy Member
Mja kweenie wat ge ermee bedoeld hoor met whitespace.

t'is eigenlijk door het feit dat de inhoud van de div(title_banner) door IE als objecten beschouwd worden (nog 2 divs en een h2) en door FF als tekst beschouwd worden. En hierdoor kan ik geen getAttribute opvragen in FF (nml tekst kan geen attributen bevatten).
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan