eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwgetElementById zwraca null › Re: getElementById zwraca null
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
    OSTED!not-for-mail
    From: Marek S <p...@s...com>
    Newsgroups: pl.comp.www
    Subject: Re: getElementById zwraca null
    Date: Sun, 18 Nov 2018 18:56:09 +0100
    Organization: ATMAN - ATM S.A.
    Lines: 38
    Message-ID: <pss93t$rda$1@node1.news.atman.pl>
    References: <psa4kg$1d6er$1@portraits.wsisiz.edu.pl>
    NNTP-Posting-Host: 89-70-94-204.dynamic.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node1.news.atman.pl 1542563773 28074 89.70.94.204 (18 Nov 2018 17:56:13 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Sun, 18 Nov 2018 17:56:13 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
    Thunderbird/60.3.0
    In-Reply-To: <psa4kg$1d6er$1@portraits.wsisiz.edu.pl>
    Content-Language: pl
    Xref: news-archive.icm.edu.pl pl.comp.www:403533
    [ ukryj nagłówki ]

    W dniu 2018-11-11 o 21:49, Jivanmukta pisze:

    > Pliki .html, .css, .js przechodzą pomyślnie walidację.
    > Nie mam innego elementu o id='property_pictures' ani innego o
    > id="main_title", literówki w id nie ma.
    > DOM dokument jest załadowany w chwili wywołania.
    > Nie usuwam elementów property_pictures ani main_title przy pomocy
    > JavaScript.
    > Przejrzałem w Google strony "getElementById returns null" i nie
    > znalazłem przyczyny mojego błędu.
    > Prosiłbym o podpowiedź co robię źle.

    Taki błąd powstaje raczej tylko w przypadku gdy DOM nie jest w pełni
    załadowany. Nic innego mi do głowy nie przychodzi. A kiedy może się tak
    dziać? Z praktyki webdewelopera najczęściej to:

    1. Jakiś skrypt zmienia / przebudowuje strukturę dokumentu. Również może
    to być refresh.

    2. Strona ładuje się i następuje chwilę potem przekierowanie do jej
    samej (3xx). Sprawdź po stronie sieci w narzędziach czy nie ma czegoś
    takiego.

    Ustaw też w na początku funkcji animateMainTitle jakiś log do konsoli by
    sprawdzić czy nie następuje podwójne wywołanie w samym JS.

    3. Ponadto z nazwy w/w funkcji wnioskuję iż naruszasz strukturę DOM by
    coś zanimować. Nie wiem jak konkretnie animujesz więc tylko zgaduję.
    Jeśli np. używasz innerHTML gdzieś dalej do zapisu, to wtedy takie cuda
    mogą się dziać. Nie należy używać do tego celu innerHTML bo jest
    strasznie wolne gdyż wymusza odświeżanie _CAŁEJ_ struktury DOM. Wtedy
    okresowo możesz tracić dostęp do DOM mimo iż pozornie wydaje Ci się, że
    nic się w niej nie zmienia. To dość częsty błąd początkujących
    programistów JS a i zaawansowani czasem też o tym nie wiedzą.

    --
    Pozdrawiam,
    Marek

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: