Met het idee mijn HTML schoon te houden heb ik mij begeven in het domein der DOM manipulatie. Als een user een bepaalde cookie heeft, wordt de volgende code uitgevoerd, om een extra 'Admin' link in het navigatie menu te creëren.
Er bestaat geen dubbele id of name in het document, en Tidy heeft niks te klagen. Ik vind het vooral raar dat de code dus 100% zeker wel het gewenste resultaat geeft in Mozilla/FF
, op de error na dan
. Wat is er fout aan deze code?
EDIT: Sorry mensen, geen al te simpele namen gebruiken was de oplossing. Het werkt nu. Code:
Dom! (Als in Nederlands woord
)
JavaScript:
Naar de voorbeelden die ik gevonden had gebruikte ik eerst createAttribute, maar dit gaf foutmeldingen. Toen kwam ik setAttribute tegen, gebruikte die en toen werkte het in Mozilla wel, maar met de foutmelding "Error: navigation_list has no properties". Beide versies van de code doen niks dan foutmeldingen geven in MSIE. 1
2
3
4
5
6
7
8
| navigation_list = document.getElementById('navigation_list'); li = document.createElement('li'); a = document.createElement('a'); a.setAttribute('href', '/admin/'); a_label = document.createTextNode('Administration') a.appendChild(a_label); li.appendChild(a); navigation_list.appendChild(li); |
Er bestaat geen dubbele id of name in het document, en Tidy heeft niks te klagen. Ik vind het vooral raar dat de code dus 100% zeker wel het gewenste resultaat geeft in Mozilla/FF
EDIT: Sorry mensen, geen al te simpele namen gebruiken was de oplossing. Het werkt nu. Code:
JavaScript:
1
2
3
4
5
6
7
8
| navlist = document.getElementById('navigation_list'); navlist_item = document.createElement('li'); navlist_item_link = document.createElement('a'); navlist_item_link.setAttribute('href', '/admin/'); navlist_item_link_text = document.createTextNode('Administration') navlist_item_link.appendChild(navlist_item_link_text); navlist_item.appendChild(navlist_item_link); navlist.appendChild(navlist_item); |
Dom! (Als in Nederlands woord
[ Voor 24% gewijzigd door Verwijderd op 20-06-2005 22:05 ]