Met JavaServer Faces heb ik een AJAX component gemaakt om een kalender te tonen met als kleine extra functionaliteit het tonen van specifieke daginformatie wanneer je op een dag klikt.
Om dit te realiseren, geef in in mijn XML een onclick attribuut terug in de elementen waar je op moet klikken.
De volgende stap is het overnemen van deze onclick in de TD elementen die ik net gegenereerd heb. In Firefox werkt het prima, daar kan ik gewoon een string in het onclick attribuut zetten. Zie code:
Dit werkt echter in IE niet. Ik heb ook een stel andere varianten geprobeerd, zoals zonder get/setAttribute() en een probeerseltje met eval().
Allemaal zonder resultaat en nu ben ik benieuwd naar een manier om die onclick handler goed cross browser te zetten.
Deze functie genereert de kalender.
Om dit te realiseren, geef in in mijn XML een onclick attribuut terug in de elementen waar je op moet klikken.
De volgende stap is het overnemen van deze onclick in de TD elementen die ik net gegenereerd heb. In Firefox werkt het prima, daar kan ik gewoon een string in het onclick attribuut zetten. Zie code:
JavaScript:
1
| col.setAttribute("onclick", dagen[j].getAttribute("onclick")); |
Dit werkt echter in IE niet. Ik heb ook een stel andere varianten geprobeerd, zoals zonder get/setAttribute() en een probeerseltje met eval().
Allemaal zonder resultaat en nu ben ik benieuwd naar een manier om die onclick handler goed cross browser te zetten.
Deze functie genereert de kalender.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| function changeCalendarData(compId, xmlDoc) { var table = document.getElementById(compId + "_table"); clearTable(table); var weken = xmlDoc.getElementsByTagName("tr"); for (var i = 0; i < weken.length; i++) { var row = table.tBodies[0].insertRow(i); var dagen = weken[i].getElementsByTagName("td"); for (var j = 0; j < dagen.length; j++) { var col = row.insertCell(j); col.innerHTML = dagen[j].firstChild.nodeValue; col.className = dagen[j].getAttribute("class"); col.setAttribute("onclick", dagen[j].getAttribute("onclick")); } } } |
Fat Pizza's pizza, they are big and they are cheezy