Voor mijn website probeer ik een menutje te maken wat verschijnt op de positie van je muis zodra je klikt. Ik ben uiteraard al druk bezig geweest en het is dan ook gelukt. Dacht ik, toen ik namelijk met IE mijn site opende blijkt dat daar een mooie javascript error krijg.
Het menutje bestaat uit het volgende divje:
Deze is met behulp van wat CSS verborgen en staat braaf te wachten in de linker bovenhoek tot hij nodig is:
Nu heb ik een stukje javascript geschreven wat de het divje zou moeten herpositioneren en visible maken:
Deze wordt dus aangeroepen zodra je klikt, in Mozilla gaat het prima. Geen javascript errors/warnings in de console. Het menu wordt ook netjes op de juiste plaats gezet en visible gemaakt.
Alleen IE gaat op mijn javascript volledig onderuit. Zodra showMenu() aangeroepen wordt met zijn parameters krijg ik een error en wel de volgende: 'Ongeldig argument' Het rare is dat als ik de elementen die ik wil aanpassen in een alert laat weergeven ik wel de juiste waarde terug krijg.
Als ik alleen nog maar de visibility aan wil passen (dus de top en left aanpassingen even weggooi) veranderd de error in: 'Kan de eigenschap visibility niet opvragen. Ongeldig argument.' Terwijl ook deze met een alert gewoon te laten zien is.
Ik heb werkelijk geen idee wat ik fout doe, want alle scripts hier op GoT die CSS dingetjes aanpassen lijken het ook op deze manier te doen. Waarom struikelt IE over mijn javascript?
Het menutje bestaat uit het volgende divje:
HTML:
1
2
3
4
5
6
7
8
9
10
| [...]
<div class="Menu" id="fileMenu">
<table class="menuTable">
<tr><td>Open</td></tr>
<tr><td>Edit</td></tr>
<tr><td>Hernoemen</td></tr>
<tr><td>Verwijder</td></tr>
</table>
</div>
[...] |
Deze is met behulp van wat CSS verborgen en staat braaf te wachten in de linker bovenhoek tot hij nodig is:
Cascading Stylesheet:
1
2
3
4
5
6
7
| div.Menu { position: absolute; top: 0px; left: 0px; visibility: hidden; } |
Nu heb ik een stukje javascript geschreven wat de het divje zou moeten herpositioneren en visible maken:
JavaScript:
1
2
3
4
5
6
7
8
| function showMenu(menu, event) { document.getElementById(menu).style.top = (event.clientY + self.pageYOffset) + 'px;'; document.getElementById(menu).style.left = (event.clientX + self.pageXOffset) + 'px;'; document.getElementById(menu).style.visibility = 'visible;'; } |
Deze wordt dus aangeroepen zodra je klikt, in Mozilla gaat het prima. Geen javascript errors/warnings in de console. Het menu wordt ook netjes op de juiste plaats gezet en visible gemaakt.
Alleen IE gaat op mijn javascript volledig onderuit. Zodra showMenu() aangeroepen wordt met zijn parameters krijg ik een error en wel de volgende: 'Ongeldig argument' Het rare is dat als ik de elementen die ik wil aanpassen in een alert laat weergeven ik wel de juiste waarde terug krijg.
Als ik alleen nog maar de visibility aan wil passen (dus de top en left aanpassingen even weggooi) veranderd de error in: 'Kan de eigenschap visibility niet opvragen. Ongeldig argument.' Terwijl ook deze met een alert gewoon te laten zien is.
Ik heb werkelijk geen idee wat ik fout doe, want alle scripts hier op GoT die CSS dingetjes aanpassen lijken het ook op deze manier te doen. Waarom struikelt IE over mijn javascript?