Javascript herschrijven voor nieuwere browsers
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function showMenu(key,sender)
{
hideSelects(true);
for (var i=0; i < 15; i++)
{
var sm = document.getElementById('sm_'+i);
if (sm != null)
{
sm.style.display = 'none';
var t=0;
var div = document.getElementById('menuContainer');
tr = div.childNodes[0].childNodes[0].childNodes[0];
td = tr.childNodes[key];
img = document.getElementById('mi_'+key);
if(sender.className.indexOf('Over') > 0 )
{
img.src='http://basis/images/sortupover.gif';
}
else
{
img.src='http://basis/images/sortup.gif';
}
}
}
stopTimer();
var submenu = document.getElementById('sm_'+key);
submenu.style.display = '';
submenu.style.left = td.offsetLeft;
if (submenu.clientWidth < td.offsetWidth)
{
submenu.style.width = td.offsetWidth + 'px';
submenu.childNodes[0].style.width = td.offsetWidth + 'px';
}
submenu.style.display = 'inline';
}
{
hideSelects(true);
for (var i=0; i < 15; i++)
{
var sm = document.getElementById('sm_'+i);
if (sm != null)
{
sm.style.display = 'none';
var t=0;
var div = document.getElementById('menuContainer');
tr = div.childNodes[0].childNodes[0].childNodes[0];
td = tr.childNodes[key];
img = document.getElementById('mi_'+key);
if(sender.className.indexOf('Over') > 0 )
{
img.src='http://basis/images/sortupover.gif';
}
else
{
img.src='http://basis/images/sortup.gif';
}
}
}
stopTimer();
var submenu = document.getElementById('sm_'+key);
submenu.style.display = '';
submenu.style.left = td.offsetLeft;
if (submenu.clientWidth < td.offsetWidth)
{
submenu.style.width = td.offsetWidth + 'px';
submenu.childNodes[0].style.width = td.offsetWidth + 'px';
}
submenu.style.display = 'inline';
}
In oudere browsers werkt dit. In nieuwere browsers geeft hij de volgende error:
TypeError: div.childNodes[0].childNodes[0] is undefined (regel 13)
Wat moet ik veranderen?
Gewijzigd op 02/03/2016 11:47:00 door Salvatore Luciano
Ik weet verder niet hoe je html eruit ziet. Anders moet je er eens een fiddle van maken.
Bedankt voor je antwoord. Als ik dat op regel 12 plaats krijg ik het volgende: "<TextNode textContent="\n ">"
Ik zal de fiddle in een prive bericht naar je sturen.
Salvatore Luciano op 02/03/2016 13:27:33:
Ik zal de fiddle in een prive bericht naar je sturen.
We zijn hier op het forum met meerdere personen die graag willen meehelpen / -denken.
Kan je de fiddle niet in dit topic delen?
Gewijzigd op 02/03/2016 13:31:46 door - Ariën -
Gewijzigd op 02/03/2016 13:57:59 door Salvatore Luciano
Gewijzigd op 02/03/2016 14:24:35 door Marthijn Buijs
- Ariën - op 02/03/2016 13:31:34:
We zijn hier op het forum met meerdere personen die graag willen meehelpen / -denken.
Kan je de fiddle niet in dit topic delen?
Salvatore Luciano op 02/03/2016 13:27:33:
Ik zal de fiddle in een prive bericht naar je sturen.
We zijn hier op het forum met meerdere personen die graag willen meehelpen / -denken.
Kan je de fiddle niet in dit topic delen?
De oplossing zal ik hier dan ook maar delen.
Dat was ipv div.childNode[0].childNode[0] :