-
Data: 2018-11-18 18:56:09
Temat: Re: getElementById zwraca null
Od: Marek S <p...@s...com> szukaj wiadomości tego autora
[ pokaż wszystkie 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
Następne wpisy z tego wątku
- 19.11.18 08:54 Jivanmukta
- 19.11.18 09:31 Jivanmukta
- 19.11.18 22:57 Marek S
- 17.12.18 15:04 Jivanmukta
Najnowsze wątki z tej grupy
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Do sądu trafił pozew zbiorowy przeciw Google'owi - oskarżenie o praktyki monopolistyczne na rynku reklamy internetowej
- Jakie znacie działające serwery grup dyskusyjnych?
- is it live this group at news.icm.edu.pl
- php, linki z nazwami a $_GET, SEO
- www polityka pl captcha
- dyktatura brudnego palucha
- www.znanylekarz.pl
- Czy pytanie o sczytywanie stron programami/skryptami to tu?
- Grupy webdevowe
- Jak wydrukować stronę?
- IIS, kilka witryn
- linki <a href="/strona.php"> (ze slashami)
- co rozszerza stronę??
- responsywny akapit <p>
Najnowsze wątki
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 TV z Play (dawniej UPC) -- potrzebny dekoder?
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 mija rok jeżdzenia po lewej
- 2025-07-06 Elektryki jednak są NIEBEZPIECZNE
- 2025-07-08 Fajny film widziałem...
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 Gdańsk => Programista Kotlin <=
- 2025-07-07 Białystok => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-07 Warszawa => Asystent ds. Sprzedaży i Rozwoju Klienta <=
- 2025-07-07 Warszawa => International Freight Forwarder <=
- 2025-07-07 Warszawa => Java Developer <=
- 2025-07-07 Białystok => Software Engineer .Net <=