🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.www
Article #408747

Re: getElementById zwraca null

#408747
From: Marek S
Date: Sun, 18 Nov 2018 17:56
38 lines
2613 bytes
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
Technical Details
Message-ID: <pss93t$rda$1@node1.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <psa4kg$1d6er$1@portraits.wsisiz.edu.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: Marek S <precz@spamowi.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
X-Trace: node1.news.atman.pl 1542563773 28074 89.70.94.204 (18 Nov 2018 17:56:13 GMT)
X-Complaints-To: usenet@atman.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-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit