Javascript herschrijven voor nieuwere browsers

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Salvatore Luciano

Salvatore Luciano

02/03/2016 11:46:29
Quote Anchor link
Ik heb het volgende stukje javascript:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
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';
}


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
 
PHP hulp

PHP hulp

08/11/2024 23:22:03
 
Randy vsf

Randy vsf

02/03/2016 12:54:00
Quote Anchor link
Wat verschijnt er in je console als je console.log(div.childNodes[0]); op regel 12 plaatst?
Ik weet verder niet hoe je html eruit ziet. Anders moet je er eens een fiddle van maken.
 
Salvatore Luciano

Salvatore Luciano

02/03/2016 13:27:33
Quote Anchor link
Hallo Randy,

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.
 
- Ariën  -
Beheerder

- Ariën -

02/03/2016 13:31:34
Quote Anchor link
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 -
 
Salvatore Luciano

Salvatore Luciano

02/03/2016 13:37:04
Quote Anchor link
Ik snap dat je dat zegt Ariën maar het gaat om een applicatie op het intranet.
Gewijzigd op 02/03/2016 13:57:59 door Salvatore Luciano
 
Marthijn Buijs

Marthijn Buijs

02/03/2016 14:23:58
Quote Anchor link
Is het niet veel handiger en gebruiksvriendelijker om jQuery te gebruiken? Dit is cross-browser en hoef je dus zelf geen rekening met browsers te maken.
Gewijzigd op 02/03/2016 14:24:35 door Marthijn Buijs
 
Randy vsf

Randy vsf

02/03/2016 15:51:56
Quote Anchor link
- Ariën - op 02/03/2016 13:31:34:
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] :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
var trElements = div.getElementsByTagName('tr');
var tr = trElements[0];
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.