Wczytanie skryptu javascript z pliku nie działa

0

Witam

Dodałem do pliku zewnętrznego taki kod

var myFirstVar = 25;
    document.getElementById("start-demo-3").innerHTML = myFirstVar;

i w pliku index.html umieściłem

<p id="start-demo-3"></p>

Jaka może być przyczyna że to nie działa? Inny skrypt z tego pliku działa prawidłowo. Oczywiście w head zaincludowałem plik <script src="./js/skrypt.js"></script>

1

Pokaż cały minimalny kod reprezentujący problem.

2

Oczywiście w head zaincludowałem plik

Head jest przed body, więc skrypty w head wczytują się zanim się wczyta to, co jest w body. Czyli document.getElementById zapewnie nie znajdzie elementu, który nie istnieje. Można temu zapobiec albo nasłuchując odpowiednie zdarzenie (https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded albo to: https://developer.mozilla.org/en-US/docs/Web/Events/load ) albo po prostu możesz przesunąć skrypt gdzieś pod koniec body, wtedy zanim się wczyta skrypt, to już będzie istniał ten element, wtedy nie będzie potrzebne nasłuchiwanie tego zdarzenia.

Tak przypuszczam, że to to, bo nie dałeś wiele informacji.

Jaka może być przyczyna że to nie działa? Inny skrypt z tego pliku działa prawidłowo.

następnym razem otwórz konsolę błędów w przeglądarce (gdzieś w narzędziach dla programistów, albo coś w tym stylu) i zobacz jaki konkretnie błąd wyskakuje.

0
LukeJL napisał(a):

Oczywiście w head zaincludowałem plik

Head jest przed body, więc skrypty w head wczytują się zanim się wczyta to, co jest w body. Czyli document.getElementById zapewnie nie znajdzie elementu, który nie istnieje. Można temu zapobiec albo nasłuchując odpowiednie zdarzenie (https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded albo to: https://developer.mozilla.org/en-US/docs/Web/Events/load ) albo po prostu możesz przesunąć skrypt gdzieś pod koniec body, wtedy zanim się wczyta skrypt, to już będzie istniał ten element, wtedy nie będzie potrzebne nasłuchiwanie tego zdarzenia.

Tak przypuszczam, że to to, bo nie dałeś wiele informacji.

Jaka może być przyczyna że to nie działa? Inny skrypt z tego pliku działa prawidłowo.

następnym razem otwórz konsolę błędów w przeglądarce (gdzieś w narzędziach dla programistów, albo coś w tym stylu) i zobacz jaki konkretnie błąd wyskakuje.

Tak sprawdziłem w konsoli i jest błąd :

TypeError: document.getElementById(...) is null

Wkleiłem includowanie skryptu za

<p>

gdzie ma być uruchamiany w sekcji body i zaczęło działać.

Tylko dziwne że drugi skrypt który też jest w body i zaincludowałem w head działa poprawnie.

0

a co jest w tym drugim pliku?

0

Dodałem

<script src="./js/skrypt.js"></script>

W sekcji <body> poniżej >

<p id="start-demo-3"></p>

i pomogło.

1 użytkowników online, w tym zalogowanych: 0, gości: 1